break
语句
来自cppreference.com
导致外围的 for、范围 for、while 或 do-while 循环或 switch 语句终止。
在用条件表达式和条件语句终止循环显得笨拙时使用。
语法
属性 (可选) break ;
|
|||||||||
属性 | - | (C++11 起) 任意数量的 属性 |
解释
仅可出现于循环体(while
、do-while
、for
)的 语句 之中,或出现于 switch
的 语句 之中。
此语句之后,控制将被转移到紧跟其外围循环或 switch 的下一语句。与退出任何代码块一样,在执行跟随外围循环之后的第一行代码之前,所有在外围复合语句或循环/switch 的 条件 中声明的具有自动存储期的变量,按照它们构造的逆序销毁。
注解
break 语句不能用于跳出多重嵌套循环。这种情况可以使用 goto 语句。 break使用时,仅能打破/跳出当前循环
关键词
示例
运行此代码
#include <iostream> int main() { int i = 2; switch (i) { case 1: std::cout << "1"; // <---- 可能会有警告:直落 case 2: std::cout << "2"; // 从此 case 标号开始执行(+警告) case 3: std::cout << "3"; // <---- 可能会有警告:直落 case 4: // <---- 可能会有警告:直落 case 5: std::cout << "45"; // break; // 终止后续语句的执行(跳出此switch) case 6: std::cout << "6"; } std::cout << '\n'; for (char c = 'a'; c < 'c'; c++) { for (int i = 0; i < 5; i++) // break 只会影响此循环 { // if (i == 2) // break; // break跳出当前for std::cout << c << i << ' '; // } } std::cout << '\n'; }
可能的输出:
2345 a0 a1 b0 b1
参阅
[[fallthrough]] (C++17)
|
指示从前一 case 标号的直落是故意的,且会警告直落的编译器不应当对此诊断 (属性指示符) |