- C 编程教程
- C - 首页
- C 语言基础
- C - 概述
- C - 特性
- C - 历史
- C - 环境设置
- C - 程序结构
- C - Hello World
- C - 编译过程
- C - 注释
- C - 词法单元
- C - 关键字
- C - 标识符
- C - 用户输入
- C - 基本语法
- C - 数据类型
- C - 变量
- C - 整数提升
- C - 类型转换
- C - 类型强制转换
- C - 布尔值
- C 语言中的常量和字面量
- C - 常量
- C - 字面量
- C - 转义序列
- C - 格式说明符
- C 语言中的运算符
- C - 运算符
- C - 算术运算符
- C - 关系运算符
- C - 逻辑运算符
- C - 位运算符
- C - 赋值运算符
- C - 一元运算符
- C - 自增和自减运算符
- C - 三元运算符
- C - sizeof 运算符
- C - 运算符优先级
- C - 其他运算符
- C 语言中的决策
- C - 决策
- C - if 语句
- C - if...else 语句
- C - 嵌套 if 语句
- C - switch 语句
- C - 嵌套 switch 语句
- C 语言中的循环
- C - 循环
- C - while 循环
- C - for 循环
- C - do...while 循环
- C - 嵌套循环
- C - 无限循环
- C - break 语句
- C - continue 语句
- C - goto 语句
- C 语言中的函数
- C - 函数
- C - 主函数
- C - 按值调用函数
- C - 按引用调用函数
- C - 嵌套函数
- C - 可变参数函数
- C - 用户定义函数
- C - 回调函数
- C - 返回语句
- C - 递归
- C 语言中的作用域规则
- C - 作用域规则
- C - 静态变量
- C - 全局变量
- C 语言中的数组
- C - 数组
- C - 数组的特性
- C - 多维数组
- C - 将数组传递给函数
- C - 从函数返回数组
- C - 可变长数组
- C 语言中的指针
- C - 指针
- C - 指针和数组
- C - 指针的应用
- C - 指针运算
- C - 指针数组
- C - 指针到指针
- C - 将指针传递给函数
- C - 从函数返回指针
- C - 函数指针
- C - 指向数组的指针
- C - 指向结构体的指针
- C - 指针链
- C - 指针与数组
- C - 字符指针和函数
- C - 空指针
- C - void 指针
- C - 悬空指针
- C - 解引用指针
- C - 近、远和巨大指针
- C - 指针数组的初始化
- C - 指针与多维数组
- C 语言中的字符串
- C - 字符串
- C - 字符串数组
- C - 特殊字符
- C 语言中的结构体和联合体
- C - 结构体
- C - 结构体和函数
- C - 结构体数组
- C - 自引用结构体
- C - 查找表
- C - 点 (.) 运算符
- C - 枚举 (或 enum)
- C - 结构体填充和打包
- C - 嵌套结构体
- C - 匿名结构体和联合体
- C - 联合体
- C - 位域
- C - Typedef
- C 语言中的文件处理
- C - 输入 & 输出
- C - 文件 I/O (文件处理)
- C 预处理器
- C - 预处理器
- C - 编译指示
- C - 预处理器运算符
- C - 宏
- C - 头文件
- C 语言中的内存管理
- C - 内存管理
- C - 内存地址
- C - 存储类
- 其他主题
- C - 错误处理
- C - 可变参数
- C - 命令执行
- C - 数学函数
- C - static 关键字
- C - 随机数生成
- C - 命令行参数
- C 编程资源
- C - 问答
- C - 快速指南
- C - 速查表
- C - 有用资源
- C - 讨论
C 语言中的 break 语句
C 语言中的break语句在两种不同的上下文中使用。在 switch-case 中,break作为每个case块的最后一个语句放置。break语句也可以用于任何循环结构(while、do–while以及for循环)的主体中。
在循环内部使用时,break会导致循环终止。在 switch-case 语句中,break在执行相应的case块后将控制权从 switch 作用域中移出。
C 语言中 break 语句的流程图
循环中break的流程图如下所示:
以下流程图显示了如何在 switch-case 中使用 break:
在这两种情况下,break都会导致控制权从当前作用域中移出。
在 While 循环中使用 Break 语句
break语句永远不会无条件地使用。它始终出现在if语句的 True 部分。否则,循环将在第一次迭代的中间终止。
while(condition1){ . . . . . . if(condition2) break; . . . . . . }
带 while 循环的 break 语句示例
以下程序检查给定数字是否为素数。素数不能被除自身和 1 以外的任何其他数字整除。
while 循环将除数加 1 并尝试检查它是否可被整除。如果发现可被整除,则终止while循环。
#include <stdio.h> /*break in while loop*/ int main () { int i = 2; int x = 121; printf("x: %d\n", x); while (i < x/2){ if (x % i == 0) break; i++; } if (i >= x/2) printf("%d is prime", x); else printf("%d is not prime", x); return 0; }
输出
执行此代码后,您将获得以下输出:
x: 121 121 is not prime
现在,将“x”的值更改为 25 并再次运行代码。它将产生以下输出:
x: 25 25 is not prime
在 For 循环中使用 Break 语句
您也可以在for循环内使用break语句。通常,for循环旨在执行一定数量的迭代。但是,有时如果达到某个条件,可能需要放弃循环。
在for循环中使用break的方法如下所示:
for (init; condition; increment) { . . . if (condition) break; . . . }
带 for 循环的 break 语句示例
以下程序打印给定字符串中元音 (a、e、I 或 u) 检测到之前的字符。
#include <stdio.h> #include <string.h> int main () { char string[] = "Rhythmic"; int len = strlen(string); int i; for (i = 0; i < len; i++){ if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || string[i] == 'o' || string[i] == 'u') break; printf("%c\n", string[i]); } return 0; }
输出
运行代码并检查其输出:
R h y t h m
如果break出现在嵌套循环结构的内部循环中,它会放弃内部循环并继续外部循环主体的迭代。对于下一次迭代,它会再次进入内部循环,如果发现条件为真,则可能会再次中断。
带嵌套 for 循环的 break 语句示例
在以下程序中,使用两个嵌套循环来获取 1 到 30 之间所有素数的列表。当发现一个数字可被整除时,内部循环中断,并将标志设置为 1。在内部循环之后,检查标志的值。如果它是“0”,则该数字是素数。
#include <stdio.h> int main(){ int i, num, n, flag; printf("The prime numbers in between the range 1 to 30:\n"); for(num = 2; num <= 30; num++){ flag = 0; for(i = 2; i <= num/2; i++){ if(num % i == 0){ flag++; break; } } if(flag == 0) printf("%d is prime\n",num); } return 0; }
输出
2 is prime 3 is prime 5 is prime 7 is prime 11 is prime 13 is prime 17 is prime 19 is prime 23 is prime 29 is prime
在无限循环中使用 Break 语句
无限循环很少有意创建。但是,在某些情况下,您可能会启动一个无限循环并在达到某个条件时从中退出。
带无限循环的 break 语句示例
在以下程序中,使用了无限for循环。在每次迭代中,都会生成 1 到 100 之间的随机数,直到获得一个可以被 5 整除的数字。
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int i, num; printf ("Program to get the random number from 1 to 100: \n"); srand(time(NULL)); for (; ; ){ num = rand() % 100 + 1; // random number between 1 to 100 printf (" %d\n", num); if (num%5 == 0) break; } }
输出
运行此代码后,您将获得如下所示的输出:
Program to get the random number from 1 to 100: 6 56 42 90
在 Switch Case 中使用 Break 语句
要将控制权从switch作用域中转移出去,每个 case 块都以break语句结尾。如果不是,程序将贯穿所有 case 块,这并非预期。
带 switch 的 break 语句示例
在以下代码中,一系列if-else 语句根据“ch”变量(“m”、“a”或“e”分别代表上午、下午或晚上)的值打印三个不同的问候语。
#include <stdio.h> int main(){ /* local variable definition */ char ch = 'm'; printf("Time code: %c\n\n", ch); switch(ch) { case 'm': printf("Good Morning \n"); break; case 'a': printf("Good Afternoon \n"); break; case 'e': printf("Good Evening \n"); break; default: printf("Hello"); } }
输出
这里,break语句在检查第一个 case 后中断程序执行。
Time code: m Good Morning
现在,注释掉break语句并再次运行代码。您现在将获得以下输出:
Time code: m Good Morning Good Afternoon Good Evening Hello