【C++学習|初心者向け】C++初心者必見!forループの「continue」を使いこなして処理を効率化しよう

導入

プログラミングをしていると、「特定の条件のときだけ処理をスキップしたい」という場面によく遭遇します。そんな時に役立つのが continue 文です。C++のforループで continue を使うと、その回の処理を中断して、次のループへ進むことができます。一見単純ですが、ループの更新式がどう動くのかを正しく理解していないと、無限ループなどのバグを生む原因になります。今回は、初心者の方が意外と見落としがちな continue の挙動をしっかり解説します。

基礎知識

for文は、「初期化」「条件式」「更新式」の3つの要素で構成されています。
例えば、for(int i = 0; i < 5; ++i) というループの場合、処理の流れは以下のようになります。 1. 初期化: int i = 0 を実行。 2. 条件式: i < 5 を確認。真ならループへ。 3. ループ内処理: { ... } の中身を実行。 4. 更新式: ++i を実行。 5. 2に戻る。 ここで continue を使うと、3の「ループ内処理」の途中で強制的に4の「更新式」へジャンプします。つまり、continue を呼んでもループは中断されず、正しく次のステップへ引き継がれるのです。

実装/解決策

continue を使う際は、「今の処理をスキップして、すぐに次の値(インクリメントなど)を確認したい」という意識を持つことが大切です。特に、if文と組み合わせて「特定の条件に一致しないものだけ処理する」という使い方が現場では非常に一般的です。

サンプルプログラム

以下のコードは、0から9までの数値のうち、偶数だけをスキップして奇数だけを表示するプログラムです。

include <iostream>

int main() {
    // 0から9までループします
    for (int i = 0; i < 10; ++i) {
        // i を 2 で割った余りが 0 の場合(つまり偶数の場合)
        if (i % 2 == 0) {
            // continueが呼ばれると、以下の「表示処理」はスキップされます
            // しかし、for文の更新式「++i」は必ず実行されます!
            continue;
        }

        // 奇数だけがここに到達します
        std::cout << i << " は奇数です。" << std::endl;
    }

    return 0;
}

応用・注意点

continue を使う際に最も陥りやすいバグは、while文で同様の制御を行おうとしたときに発生します。
for文は更新式が自動的に実行されますが、while文の場合は自分でループ変数を更新しなければなりません。そのため、continue の手前でインクリメントを忘れると、同じ条件で永久にループし続ける「無限ループ」に陥ります。

また、continue を多用しすぎるとコードの可読性が下がり、処理の流れが追いにくくなることがあります。基本的には「例外的なケースを先に弾く(ガード節)」ために使うと、コードがすっきりと読みやすくなります。ぜひ、実務のコードでも意識してみてくださいね。

コメント

タイトルとURLをコピーしました