C++: ループ構造

最終更新:2026-08-31

コンピュータの本当の力は繰り返しから来る。同じコードを100回書く代わりに、ループを一度書いて100回実行する。それがループの役割だ。


1. forループ

回数がわかっている繰り返しにforを使う。

CPP
for (int i = 1; i <= 5; i++) {
    std::cout << i << " ";
}
// 出力: 1 2 3 4 5

forループの3つの部分:

部分 目的
初期化 int i = 1; 開始時に一度だけ実行
条件 i <= 5; 各反復前にチェック
更新 i++ 各反復後に実行

▶ サンプル 1:1から10まで出力(難易度 ⭐)

CPP
#include <iostream>

int main() {
    for (int i = 1; i <= 10; i++) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}
▶ 試してみよう

2. whileループ

回数はわからないが条件はわかっている場合にwhileを使う。

CPP
int i = 1;
while (i <= 5) {
    std::cout << i << " ";
    i++;
}

▶ サンプル 2:カウントダウン(難易度 ⭐)

CPP
#include <iostream>

int main() {
    int count = 10;
    while (count > 0) {
        std::cout << count << "... ";
        count--;
    }
    std::cout << "打ち上げ!" << std::endl;
    return 0;
}
▶ 試してみよう

3. do-whileループ

コードが少なくとも1回は実行される必要がある場合にdo-whileを使う。

TEXT 📖 参照専用
int num;
do {
    std::cout << "正の数を入力: ";
    std::cin >> num;
} while (num <= 0);
💡 ヒント: メニューや入力検証に最適。コードが先に実行され、その後条件をチェック。



4. breakとcontinue

効果
break ループを即座に終了
continue 現在の反復の残りをスキップし、次へ
CPP
for (int i = 1; i <= 10; i++) {
    if (i == 5) continue; // 5をスキップ
    if (i == 8) break;    // 8で停止
    std::cout << i << " ";
}
// 出力: 1 2 3 4 6 7


5. ネストしたループ

ループの中にループ。外側のループの各反復で、内側のループがすべての反復を完了する。

▶ サンプル 3:九九表を出力(難易度 ⭐⭐)

CPP
#include <iostream>
#include <iomanip>

int main() {
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++) {
            std::cout << j << "x" << i << "=" << std::setw(2) << i * j << " ";
        }
        std::cout << std::endl;
    }
    return 0;
}
▶ 試してみよう

❓ よくある質問

Q forループの一部を省略できる?
A できる。for (; i <= 10; i++)は初期化を省略、for (;;)は無限ループを作成(while(true)と同じ)。しかしこれは可読性を下げる——控えめに使おう。
Q whileとforは相互変換可能?
A 可能。すべてのforループはwhileループに書き換え可能、その逆も。回数がわかるときはfor、条件がわかるときはwhileを使う。
Q ネストしたループでbreakとcontinueはどう動く?
A breakは最も内側のループだけ終了。continueは最も内側のループの現在の反復だけスキップ。代替としてラベル付きループがある。

📖 まとめ


📝 練習問題

  1. 初級(難易度 ⭐): 1から100までの偶数をすべて出力するプログラムを書く。

  2. 中級(難易度 ⭐⭐): 1からnまでの合計を計算するプログラムを書く。nはユーザーが入力。

  3. 上級(難易度 ⭐⭐⭐): アスタリスクでひし形パターンを出力するプログラムを書く。ユーザーが高さを入力し、プログラムは対称なひし形を出力。

Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%