break
语句
来自 cppreference.cn
使包含的 for、range-for、while 或 do-while 循环或 switch 语句终止。
当使用条件表达式和条件语句终止循环不方便时使用。
目录 |
[编辑] 语法
attr (可选) break ; |
|||||||||
属性 | - | (自 C++11 起) 任意数量的属性 |
[编辑] 解释
仅出现在循环体(while
、do-while
、for
)的 statement 中,或 switch
的 statement 中。此语句执行后,控制权将转移到紧跟在包含循环或 switch 之后的语句。与任何块退出一样,在执行包含循环后的第一行之前,在包含复合语句或循环/switch 的 condition 中声明的所有自动存储对象都将以与构造相反的顺序销毁。
[编辑] 注意
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 文档 关于 break
|