入門書でのおさらい15・break文とcontinue文

今日は92ページのbreak文とcontinue文とから始めたいと思います。

92ページ・break文とcontinue文

今日はbreak文・coutinue文からです

それぞれの役割を簡潔にまとめました。

break文:ループを「脱出」する

break が実行されると、現在実行中のループ(for, while, do-while)をその場で強制終了し、ループの次の処理へ移ります。 

  • 使いどころ: 特定の条件を満たしたとき、それ以上ループを回す必要がない場合(例:検索で見つかった時、エラーが起きた時など)。
  • 注意点: 多重ループ(ループの中にループ)の場合、一番内側のループだけを抜けます。

continue文:処理を「スキップ」して次へ 

continue が実行されると、ループ内の残りの処理をスキップし、次の回のループ(条件判定や更新式)へ直行します。 

  • 使いどころ: 特定の条件の時だけ処理を飛ばしたい場合(例:奇数だけ飛ばして偶数だけ計算したい時など)。

イメージを掴むための比較コード

#include <stdio.h>

int main() {
    int i;

    // --- breakの例:3になったらループを抜ける ---
    printf("breakの場合: ");
    i = 1;
    while (i <= 5) {
        if (i == 3) {
            break; // ここでループが強制終了
        }
        printf("%d ", i);
        i++;
    }
    // 結果:1 2 (3で終わる)

    printf("\n");

    // --- continueの例:3の時だけ処理を飛ばす ---
    printf("continueの場合: ");
    i = 0; // 1から始めたいので0からスタート
    while (i < 5) {
        i++; // カウントアップを先に書くのがコツです
        if (i == 3) {
            continue; // ここで「printf」を飛ばして、whileの判定に戻る
        }
        printf("%d ", i);
    }
    // 結果:1 2 4 5 (3だけ表示されない)

    return 0;
}

わかりやすく解説

  1. break
    i が 3 になった瞬間に while の外に放り出されます。なので、その後の printf も実行されず、ループ自体が終了します。
  2. continue
    i が 3 のとき、continue が実行されると、それより下にある printf を無視して、すぐに「次は 4 かな?」と while の条件チェックに戻ります。

注意ポイント
while 文で continue を使うときは、i++(カウントアップ)の場所に気をつけてください。continue の後に i++ を書くと、3のまま止まってしまい、無限ループになってしまうことがあります。

breakはループから出ちゃうけど、continueはループは出ず、continue以降の処理を全部飛ばしてループの最初に行くってこと?

もう少し厳密に言うと、continue が飛ばして戻る先は「ループの最初(条件式の判定)」です。 

while文での注意点(ここがハマりやすい!)

先ほどのコードで i++(カウントアップ)の位置を気にしていたのは、こういう理由です。

i = 1;
while (i <= 5) {
    if (i == 3) {
        continue; // ここで先頭に戻ると...
    }
    printf("%d ", i);
    i++; // ← ここを通らないので、iはずっと3のまま(無限ループ!)
}

このように、whilecontinueを使うときは、「次の回に進むための準備(i++など)」まで飛ばしてしまわないかだけ気をつければOKです。

わかりました!次はいよいよfor文です