命名空间
变体
操作

break 语句

来自 cppreference.com
< c‎ | 语言

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

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

内容

[编辑] 语法

属性规范序列 (可选) break ;
属性规范序列 - (C23) 可选的 属性 列表,应用于 break 语句

仅出现在循环体 (whiledo-whilefor) 或 switch语句 中。

[编辑] 解释

执行此语句后,控制权将转移到封闭循环或 switch 语句后的语句或声明,就像使用 goto 一样。

[编辑] 关键字

break

[编辑] 备注

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

[编辑] 示例

#include <stdio.h>
 
int main(void)
{
    int i = 2;
    switch (i)
    {
        case 1: printf("1");
        case 2: printf("2");   // i==2, so execution starts at this case label
        case 3: printf("3");
        case 4:
        case 5: printf("45");
                break;         // execution of subsequent cases is terminated
        case 6: printf("6");
    }
    printf("\n");
 
    // Compare outputs from these two nested for loops.
    for (int j = 0; j < 2; j++)
        for (int k = 0; k < 5; k++)
            printf("%d%d ", j,k);
    printf("\n");
 
    for (int j = 0; j < 2; j++)
    {
        for (int k = 0; k < 5; k++) // only this loop is exited by break
        {
            if (k == 2)
                break;
            printf("%d%d ", j,k);
        }
    }
}

可能的输出

2345
00 01 02 03 04 10 11 12 13 14
00 01 10 11

[编辑] 参考文献

  • C17 标准 (ISO/IEC 9899:2018)
  • 6.8.6.3 break 语句 (p: 111)
  • C11 标准 (ISO/IEC 9899:2011)
  • 6.8.6.3 break 语句 (p: 153)
  • C99 标准 (ISO/IEC 9899:1999)
  • 6.8.6.3 break 语句 (p: 138)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 3.6.6.3 break 语句

[编辑] 另请参见

[[fallthrough]](C23) 表示从之前的 case 标签进行的穿透是故意的,不应该被警告穿透的编译器诊断出来。
(属性说明符)[编辑]
C++ 文档 for break 语句