ループ構造
コンピュータの真の力は、繰り返しにある。同じコードを100回書く代わりに、ループを1回書いて、それを100回実行させる。ループとは、まさにそのためにあるのだ。
1. forループ
繰り返す回数が分かっている場合は、for を使用してください。
CPP
for (int i = 1; i <= 5; i++) {
std::cout << i << " ";
}
// Output: 1 2 3 4 5
forループの3つの構成要素:
| パート | 例 | 目的 |
|---|---|---|
| 初期化 | int i = 1; |
開始時に1回実行される |
| 条件 | i <= 5; |
各反復の前に確認 |
| 更新 | i++ |
各反復処理の後に実行される |
(1) ▶ サンプル: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++;
}
(1) ▶ サンプル:2:カウントダウン(難易度 ⭐)
CPP
#include iostream
int main() {
int count = 10;
while (count > 0) {
std::cout << count << "... ";
count--;
}
std::cout << "Liftoff!" << std::endl;
return 0;
}
3. do-whileループ
コードを少なくとも1回は実行する必要がある場合は、do-while を使用してください。
CPP
int num;
do {
std::cout << "Enter a positive number: ";
std::cin >> num;
} while (num <= 0);
💡 ヒント: メニューや入力の妥当性チェックに最適です。まずコードが実行され、その後、条件がチェックされます。
4. break と continue
| 記述 | 効果 |
|---|---|
break |
ループを直ちに終了する |
continue |
現在の反復処理の残りをスキップし、次の反復処理に進む |
CPP
for (int i = 1; i <= 10; i++) {
if (i == 5) continue; // Skip 5
if (i == 8) break; // Stop at 8
std::cout << i << " ";
}
// Output: 1 2 3 4 6 7
5. ネストされたループ
ループ内のループ。外側のループが1回実行されるごとに、内側のループはそのすべての反復を完了する。
▶ サンプル 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 は最も内側のループの現在の反復のみをスキップします。代わりにラベル付きループを使用してください。📖 まとめ
- forループ:反復回数が分かっている場合に使用します
- whileループ:継続条件が分かっている場合に使用します
- do-whileループ:コードを少なくとも1回は実行する必要がある場合に使用します
- break:ループを直ちに終了する
- continue:次の反復処理に進む
📝 練習問題
-
初心者(難易度 ⭐): 1から100までのすべての偶数を出力するプログラムを作成してください。
-
中級(難易度 ⭐⭐): ユーザーが指定した n までのすべての数の和を計算するプログラムを作成してください。
-
上級(難易度 ⭐⭐⭐): アスタリスクでダイヤモンドの模様を出力するプログラムを作成してください。ユーザーが高さを入力すると、プログラムは左右対称のダイヤモンドを出力します。



