break 语句

来自cppreference.com
< cpp‎ | language

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

在用条件表达式和条件语句终止循环显得笨拙时使用。

语法

属性(可选) break ;

解释

此语句之后,控制将被转移到紧跟其外围循环或 switch 的下一位置。与退出任何代码块一样,在执行外围循环之后的下一行之前,所有在外围复合语句或循环/switch 的 条件 中声明的具有自动存储期的变量,按照它们构造的逆序销毁。

关键词

break

注解

break 语句不能用于跳出多重嵌套循环。这种情况可以使用 goto 语句

示例

#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;              //终止后续语句的执行
        case 6: std::cout << "6";
    }
 
    std::cout << '\n';
 
    for (int j = 0; j < 2; j++) {
        for (int k = 0; k < 5; k++) {         // break 只会影响此循环
            if (k == 2) break;
            std::cout << j << k << " ";
        }
    }
}

输出:

2345
00 01 10 11

参阅

[[fallthrough]](C++17) 指示从上一个 case 标签的直落是有意的,会对直落进行警告的编译器不应对此进行诊断