break 语句
来自cppreference.com
终止特定的外围语句。
语法
属性 (可选) break ;
|
|||||||||
| 属性 | - | (C++11 起) 任意数量的属性 |
解释
break 语句必须被以下任意语句包围:
| (C++26 起) |
switch语句
执行 break 语句会终止包围该语句的此类语句中最内层的语句,然后控制会转移到紧随被终止语句的下一条语句(如果存在)。
注解
与退出任何代码块一样,在执行跟随外围循环之后的第一行代码之前,在外围复合语句或循环/switch 的条件 中声明的所有具有自动存储期的变量都会按照它们构造的逆序销毁。
break 语句不能用来跳出多重嵌套循环。这种情况可以使用 goto 语句。
关键词
示例
Run this code
#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; //
std::cout << c << i << ' '; //
}
}
std::cout << '\n';
}
可能的输出:
2345
a0 a1 b0 b1
参阅
[[fallthrough]](C++17) |
指示从前一 case 标号的直落是故意的,且会警告直落的编译器不应当对此诊断 (属性指示符) |
break 的 C 文档
| |