break
语句
来自 cppreference.com
导致封闭的 for,范围-for,while 或 do-while 循环或 switch 语句 终止。
当使用条件表达式和条件语句来终止循环很笨拙时使用。
内容 |
[编辑] 语法
attr (可选) break ; |
|||||||||
attr | - | (自 C++11 起) 任意数量的 属性 |
[编辑] 解释
仅出现在循环体 (while
,do-while
,for
) 或 switch
的 语句 内。在该语句之后,控制权将转移到封闭循环或 switch 后面的第一个语句。与任何块退出一样,在执行封闭循环后的第一行之前,在封闭复合语句或循环/switch 的 条件 中声明的所有自动存储对象将被销毁,其顺序与构造顺序相反。
[编辑] 注释
break 语句不能用于跳出多个嵌套循环。可以使用 goto 语句 来实现此目的。
[编辑] 关键字
[编辑] 示例
运行此代码
#include <iostream> int main() { int i = 2; switch (i) { case 1: std::cout << "1"; // <---- maybe warning: fall through case 2: std::cout << "2"; // execution starts at this case label (+warning) case 3: std::cout << "3"; // <---- maybe warning: fall through case 4: // <---- maybe warning: fall through case 5: std::cout << "45"; // break; // execution of subsequent statements is terminated case 6: std::cout << "6"; } std::cout << '\n'; for (char c = 'a'; c < 'c'; c++) { for (int i = 0; i < 5; i++) // only this loop is affected by break { // if (i == 2) // break; // std::cout << c << i << ' '; // } } std::cout << '\n'; }
可能的输出
2345 a0 a1 b0 b1
[编辑] 另请参见
[[fallthrough]] (C++17) |
指示从前一个 case 标签的穿透是故意的,不应该由在穿透时发出警告的编译器诊断。 (属性说明符) |
C 文档 for break
|