命名空间
变体
操作

break 语句

来自 cppreference.com
< cpp‎ | 语言
 
 
C++ 语言
一般主题
流程控制
条件执行语句
if
迭代语句(循环)
for
范围-for (C++11)
跳转语句
continue - break
函数
函数声明
Lambda 函数表达式
inline 说明符
动态异常规范 (直到 C++17*)
noexcept 说明符 (C++11)
异常
命名空间
类型
说明符
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
存储持续时间说明符
初始化
 
 

导致封闭的 for范围-forwhiledo-while 循环或 switch 语句 终止。

当使用条件表达式和条件语句来终止循环很笨拙时使用。

内容

[编辑] 语法

attr (可选) break ;
attr - (自 C++11 起) 任意数量的 属性

[编辑] 解释

仅出现在循环体 (whiledo-whilefor) 或 switch语句 内。在该语句之后,控制权将转移到封闭循环或 switch 后面的第一个语句。与任何块退出一样,在执行封闭循环后的第一行之前,在封闭复合语句或循环/switch 的 条件 中声明的所有自动存储对象将被销毁,其顺序与构造顺序相反。

[编辑] 注释

break 语句不能用于跳出多个嵌套循环。可以使用 goto 语句 来实现此目的。

[编辑] 关键字

break

[编辑] 示例

#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