break 语句
来自 cppreference.com
导致封闭的 for、while 或 do-while 循环或 switch 语句 终止。
当使用条件表达式和条件语句来终止循环很麻烦时使用。
内容 |
[编辑] 语法
属性规范序列 (可选) break ; |
|||||||||
属性规范序列 | - | (C23) 可选的 属性 列表,应用于 break 语句 |
仅出现在循环体 (while
、do-while
、for
) 或 switch
的 语句 中。
[编辑] 解释
执行此语句后,控制权将转移到封闭循环或 switch 语句后的语句或声明,就像使用 goto
一样。
[编辑] 关键字
[编辑] 备注
break 语句不能用于跳出多个嵌套循环。可以使用 goto 语句
来实现此目的。
[编辑] 示例
运行此代码
#include <stdio.h> int main(void) { int i = 2; switch (i) { case 1: printf("1"); case 2: printf("2"); // i==2, so execution starts at this case label case 3: printf("3"); case 4: case 5: printf("45"); break; // execution of subsequent cases is terminated case 6: printf("6"); } printf("\n"); // Compare outputs from these two nested for loops. for (int j = 0; j < 2; j++) for (int k = 0; k < 5; k++) printf("%d%d ", j,k); printf("\n"); for (int j = 0; j < 2; j++) { for (int k = 0; k < 5; k++) // only this loop is exited by break { if (k == 2) break; printf("%d%d ", j,k); } } }
可能的输出
2345 00 01 02 03 04 10 11 12 13 14 00 01 10 11
[编辑] 参考文献
- C17 标准 (ISO/IEC 9899:2018)
- 6.8.6.3 break 语句 (p: 111)
- C11 标准 (ISO/IEC 9899:2011)
- 6.8.6.3 break 语句 (p: 153)
- C99 标准 (ISO/IEC 9899:1999)
- 6.8.6.3 break 语句 (p: 138)
- C89/C90 标准 (ISO/IEC 9899:1990)
- 3.6.6.3 break 语句
[编辑] 另请参见
[[fallthrough]] (C23) |
表示从之前的 case 标签进行的穿透是故意的,不应该被警告穿透的编译器诊断出来。 (属性说明符) |
C++ 文档 for
break 语句 |