カテゴリ: C++ 更新日: 2026/03/23

C++のcontinue文を完全攻略!繰り返し処理で特定の条件をスキップする方法

continue文の役割と使い方
continue文の役割と使い方

先生と生徒の会話形式で理解しよう

生徒

「先生、繰り返し処理をしている最中に、ある特定の時だけ処理を飛ばして、次の回に行きたいときはどうすればいいですか?」

先生

「そんな時には『continue文』を使うのが一番ですよ。ループの中で特定の条件に当てはまった時だけ、残りの処理を無視して次のループへ進むことができるんです。」

生徒

「処理を飛ばす……?それってbreak文とは違うんですか?」

先生

「その通り!breakはループを完全に終わらせますが、continueは『今回だけお休み』というイメージです。詳しい仕組みを一緒に見ていきましょう!」

1. continue文とは?基本的な役割を解説

1. continue文とは?基本的な役割を解説
1. continue文とは?基本的な役割を解説

C++のプログラミングにおけるcontinue文(コンティニュー文)は、for文やwhile文といった繰り返し処理(ループ処理)の中で使用される強力な制御構文の一つです。この命令が実行されると、ループ内のそれ以降に書かれている処理はすべてスキップされ、即座に次の繰り返しの判定へと移動します。

例えば、「1から10まで数字を数えるけれど、4の時だけは何もせずに飛ばしたい」というような場合に非常に便利です。未経験の方でも、「一旦今の作業を切り上げて、次の番号へ進む」というイメージを持てば、難しいことはありません。このように、柔軟にプログラムの流れを操ることで、無駄のない効率的なコードを書くことができるようになります。

2. パソコン初心者でもわかる「スキップ」の具体例

2. パソコン初心者でもわかる「スキップ」の具体例
2. パソコン初心者でもわかる「スキップ」の具体例

プログラミングを学んだことがない方のために、日常生活の動作で例えてみましょう。あなたが学校の先生で、クラス全員(30人)のテストを採点していると想像してください。1番の人から順番に採点していきますが、もし「欠席した生徒」の答案用紙が回ってきたらどうしますか?

当然、採点作業はせずに「次の生徒」の答案用紙を手に取りますよね。この「欠席者なので採点を飛ばして、次の人の作業に移る」という動作こそが、プログラミングにおけるcontinue文の役割です。作業自体を完全にやめて帰宅してしまうのがbreak文、その人の分だけ飛ばして作業を続けるのがcontinue文という違いがあります。この違いを理解することが、C++のループ制御をマスターする第一歩です。

3. for文でcontinueを使う方法

3. for文でcontinueを使う方法
3. for文でcontinueを使う方法

まずは、最もよく使われるfor文(フォー文)の中での使い方を見てみましょう。for文は「決められた回数だけ繰り返す」という命令です。以下のサンプルコードでは、1から5まで表示しようとしますが、3の時だけcontinueを使ってスキップします。これにより、画面には「3」が表示されない仕組みになります。


#include <iostream>

int main() {
    for (int i = 1; i <= 5; i++) {
        // もしiが3だったら、これ以降の処理を飛ばして次の数字(4)へ進む
        if (i == 3) {
            continue;
        }
        std::cout << i << "番目の処理を実行中" << std::endl;
    }
    return 0;
}

実行結果は以下のようになります。


1番目の処理を実行中
2番目の処理を実行中
4番目の処理を実行中
5番目の処理を実行中

「3番目」が表示されていないことに注目してください。if文という条件分岐を使って、「もし3だったら」という条件が満たされた瞬間にcontinueが発動し、その下のcout(画面表示)が無視されたのです。その後、ループは終わらずに「4」へと進んでいますね。

4. while文で使う時の重要な注意点

4. while文で使う時の重要な注意点
4. while文で使う時の重要な注意点

次に、条件が満たされている間はずっと繰り返すwhile文(ワイル文)での使い方を解説します。基本的な役割は同じですが、while文でcontinueを使うときには一つだけ大きな注意点があります。それは「変数の更新(カウントアップ)」のタイミングです。

もしcontinueよりも後に「次の数字に進める処理(i++など)」を書いてしまうと、永遠に同じ数字でスキップし続けてしまい、プログラムが止まらなくなる「無限ループ」という状態に陥ってしまいます。パソコンが固まる原因にもなるので、初心者のうちは特に気をつけるポイントです。安全な書き方を確認しましょう。


#include <iostream>

int main() {
    int i = 0;
    while (i < 5) {
        i++; // ループの最初の方でカウントを進めるのが安全
        
        if (i == 2) {
            std::cout << "2は飛ばします!" << std::endl;
            continue;
        }
        
        std::cout << "現在の数値は: " << i << std::endl;
    }
    return 0;
}

実行結果です。


現在の数値は: 1
2は飛ばします!
現在の数値は: 3
現在の数値は: 4
現在の数値は: 5

5. 実用的な活用例:偶数だけを表示するプログラム

5. 実用的な活用例:偶数だけを表示するプログラム
5. 実用的な活用例:偶数だけを表示するプログラム

continue文は、特定のデータだけを除外したいときに非常に役立ちます。例えば、大量の数字の中から「奇数だけを除外して、偶数だけを表示したい」という場合です。プログラミングの世界では、余りを計算する記号(%)を使って、奇数か偶数かを判断します。2で割って余りが1なら奇数、0なら偶数ですね。この性質を利用して、奇数の時にスキップさせれば、結果的に偶数だけが残ります。


#include <iostream>

int main() {
    std::cout << "1から10までの偶数を表示します。" << std::endl;
    
    for (int i = 1; i <= 10; i++) {
        // iを2で割った余りが1(つまり奇数)ならスキップ
        if (i % 2 != 0) {
            continue;
        }
        
        std::cout << i << " ";
    }
    
    return 0;
}

実行結果です。


1から10までの偶数を表示します。
2 4 6 8 10 

このように、continueを使うことで「処理をしたくない対象」を最初に取り除くことができ、メインの処理(ここでは表示)をすっきりと書くことができます。これを専門用語で「ガード句」のような考え方と呼ぶこともありますが、まずは「嫌なものは先に飛ばす」と覚えればOKです。

6. break文とcontinue文の決定的な違い

6. break文とcontinue文の決定的な違い
6. break文とcontinue文の決定的な違い

ここで、よく混同されるbreak文との違いをしっかり整理しておきましょう。どちらもループを制御するものですが、その影響力には大きな差があります。検索エンジンでも「C++ break continue 違い」はよく調べられるキーワードです。

break文: 実行された瞬間、ループ自体が強制終了します。その後に予定されていた繰り返しも一切行われません。例えるなら、マラソン大会で途中でリタイアして家に帰ってしまうようなものです。

continue文: 実行されると、今回の回の残りの作業だけをやめて、すぐに次の回を開始します。ループ自体は続きます。例えるなら、マラソン大会で給水ポイントを一つだけ立ち寄らずに通り過ぎ、そのまま走り続けるようなものです。この違いを使い分けることで、より複雑な条件設定が可能になります。

7. 複雑な条件でのcontinue文の活用

7. 複雑な条件でのcontinue文の活用
7. 複雑な条件でのcontinue文の活用

実際の開発現場では、一つの条件だけでなく複数の条件を組み合わせてスキップすることもあります。例えば、「3の倍数」または「数字に5が含まれる」時にスキップするなどです。こうした複雑なロジックを組む際、if文の中に何重にも処理を書くよりも、continueを使って「対象外」を弾いていく方が、コードの見た目が綺麗になり、後から見返したときに理解しやすくなります。読みやすさ(可読性)を意識するのは、プログラマーにとって大切なスキルです。


#include <iostream>

int main() {
    for (int i = 1; i <= 15; i++) {
        // 3の倍数、または4の倍数の時は何も表示しない
        if (i % 3 == 0 || i % 4 == 0) {
            continue;
        }
        
        std::cout << i << "は対象内です。" << std::endl;
    }
    
    return 0;
}

実行結果です。


1は対象内です。
2は対象内です。
5は対象内です。
7は対象内です。
10は対象内です。
11は対象内です。
13は対象内です。
14は対象内です。

3、4、6、8、9、12、15といった数字がしっかり除外されています。複数の条件があっても、continue一つでスマートに制御できることがわかりますね。

8. エラーを防ぐ!continueを使う時のコツ

8. エラーを防ぐ!continueを使う時のコツ
8. エラーを防ぐ!continueを使う時のコツ

最後に、より良いプログラムを書くためのヒントをお伝えします。continueを多用しすぎると、どこで処理が飛んでいるのか追いかけるのが大変になることがあります。そのため、「本当にスキップが必要な理由」をコメント(//から始まるメモ書き)で残しておく癖をつけましょう。また、条件式はできるだけシンプルに保つことがエラーを防ぐコツです。

パソコンを触ったことがない方でも、こうした一つ一つの「お作法」を意識することで、プロのプログラマーに近い綺麗なコードが書けるようになります。C++は難しいイメージがあるかもしれませんが、continueのような便利な道具を少しずつ覚えていけば、必ず自由にプログラムを作れるようになりますよ!

カテゴリの一覧へ
新着記事
New1
C++
C++のヘッダファイルとソースファイル分割構成の完全ガイド!初心者でも理解できる
New2
C++
C++の可変長引数を完全解説!初心者でもわかる関数の引数を増やす方法
New3
C言語
C言語のCI/CD導入ガイド!GitHub Actionsで自動ビルドする方法
New4
C言語
C言語の依存関係管理と再コンパイルの仕組みを完全解説!初心者でもわかるビルドの基本
人気記事
No.1
Java&Spring記事人気No1
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.2
Java&Spring記事人気No2
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.3
Java&Spring記事人気No3
C言語
LinuxでC言語開発環境を構築する方法【GCCとMakefileの基本】
No.4
Java&Spring記事人気No4
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.5
Java&Spring記事人気No5
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.6
Java&Spring記事人気No6
C言語
C言語の配列と文字列の基本を完全ガイド!初心者でもわかる宣言と使い方
No.7
Java&Spring記事人気No7
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド
No.8
Java&Spring記事人気No8
C++
Makefileの基本構文とターゲット定義を初心者向けに解説