本文へスキップ
BecomeCoder

C言語コース · 第3章 制御構文 · レッスン13

break / continue ― ループを制御する

ブラウザで完結

導入

ループの途中で「もう抜けたい」「この回だけ飛ばしたい」ときに使うのが breakcontinue です。

説明

break; はループをその場で終了します。目的が達成できたら止める、という使い方が典型です。

#include <stdio.h>

int main() {
    for (int i = 1; i <= 100; i++) {
        if (i * i > 50) {
            printf("%d で初めて2乗が50を超えた\n", i);
            break;          // ここでループを抜ける
        }
    }
    return 0;
}

continue; は、その回の残りを飛ばして次のくり返しへ進みます。条件に合うものだけ処理したいときに使います。

#include <stdio.h>

int main() {
    for (int i = 1; i <= 10; i++) {
        if (i % 2 == 0) continue;   // 偶数はスキップ
        printf("%d ", i);           // 奇数だけ
    }
    printf("\n");                    // 1 3 5 7 9
    return 0;
}

breakcontinue はどちらも for だけでなく whiledo-while でも同じように使えます。

やってみよう

break の条件や continue の条件を変えて、表示される数がどう変わるか確かめましょう。

演習

for (int i = 1; i <= 20; i++) のループで、continue を使って3の倍数だけを表示してください(3 6 9 12 15 18)。

ヒント1を見る

3の倍数以外を飛ばします。if (i % 3 != 0) continue;

実際に動かしてみよう

下のエディタにCを書いて「実行」を押すと、ブラウザ内のインタプリタで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(scanf を使う回は「標準入力」欄に値を入れてから実行します)。

C/C++ — ブラウザ内で実行

ブラウザ内でC/C++を動かす学習用インタプリタ(JSCPP)を読み込みます(入門向けのサブセットです)。
スクロールして表示された時点でも自動で読み込まれます。