名前空間
変種
操作

break文

From cppreference.com
< c‎ | language

囲んでいる forwhile、または do-while ループ、あるいは switch文 を終了させます。

条件式や条件文を使ってループを終了させるのが不便な場合に使用されます。

目次

[編集] 構文

attr-spec-seq (任意) break ;
attr-spec-seq - (C23) break 文に適用される 属性のリスト (任意)

ループ本体 (whiledo-whilefor) の statement 内、または switchstatement 内でのみ出現します。

[編集] 説明

この文の後、制御は囲んでいるループまたは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文

[編集] 関連項目

(C23)
前のケースラベルからのフォールスルーが意図的なものであり、フォールスルーについて警告するコンパイラによって診断されるべきではないことを示します
(属性指定子)[編集]
English 日本語 中文(简体) 中文(繁體)