break 语句

来自cppreference.com
< cpp‎ | language


 
 
C++ 语言
 
 

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

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

语法

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

解释

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

注解

break 语句不能用于跳出多重嵌套循环。这种情况可以使用 goto 语句。 break使用时,仅能打破/跳出当前循环

关键词

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 标号的直落是故意的,且会警告直落的编译器不应当对此诊断
(属性指示符)