C++ forループ完全ガイド:ステップバイステップでマスター
C++ for ループ
このチュートリアルでは、C++の for ループとその動作を実例とともに学習します。
コンピュータプログラミングでは、ループを使ってコードブロックを繰り返し実行します。
例えば、メッセージを100回表示したい場合、print文を100回書く代わりにループを使えます。
これは単純な例ですが、ループを効果的に活用すれば、プログラムの効率と洗練度を大幅に高められます。
C++には3種類のループがあります:
forループwhileループdo...whileループ
このチュートリアルはC++ for ループに焦点を当てます。他のループタイプは今後のチュートリアルで学びます。
C++ for ループ
forループの構文は:
for (initialization; condition; update) {
// ループの本体
}
ここで:
initialization- 変数を初期化し、一度だけ実行されるcondition-trueならforループの本体を実行、falseならループ終了update- 初期化された変数の値を更新し、再び条件をチェック
condition の詳細については「C++ 関係演算子と論理演算子」チュートリアルを参照してください。
C++ for ループのフローチャート

実例 1: 1から5までの数字を出力
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 5; ++i) {
cout << i << " ";
}
return 0;
}
出力
1 2 3 4 5
このプログラムの動作:
| 反復 | 変数 | i <= 5 | アクション |
|---|---|---|---|
| 1回目 | i = 1 | true | 1 が出力。i は 2 に増加 |
| 2回目 | i = 2 | true | 2 が出力。i は 3 に増加 |
| 3回目 | i = 3 | true | 3 が出力。i は 4 に増加 |
| 4回目 | i = 4 | true | 4 が出力。i は 5 に増加 |
| 5回目 | i = 5 | true | 5 が出力。i は 6 に増加 |
| 6回目 | i = 6 | false | ループ終了 |
実例 2: テキストを5回表示
// テキストを5回表示するC++プログラム
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 5; ++i) {
cout << "Hello World! " << endl;
}
return 0;
}
出力
Hello World! Hello World! Hello World! Hello World! Hello World!
動作の内訳:
| 反復 | 変数 | i <= 5 | アクション |
|---|---|---|---|
| 1回目 | i = 1 | true | Hello World! 出力、i は 2 に |
| 2回目 | i = 2 | true | Hello World! 出力、i は 3 に |
| 3回目 | i = 3 | true | Hello World! 出力、i は 4 に |
| 4回目 | i = 4 | true | Hello World! 出力、i は 5 に |
| 5回目 | i = 5 | true | Hello World! 出力、i は 6 に |
| 6回目 | i = 6 | false | ループ終了 |
実例 3: 最初の n 個の自然数の和を求める
// 最初の n 個の自然数の和を求めるC++プログラム
// 1,2,3,...n のような正の整数を自然数という
#include <iostream>
using namespace std;
int main() {
int num, sum;
sum = 0;
cout << "Enter a positive integer: ";
cin >> num;
for (int i = 1; i <= num; ++i) {
sum += i;
}
cout << "Sum = " << sum << endl;
return 0;
}
出力
Enter a positive integer: 10 Sum = 55
この例では num と sum という2つの変数があります。sum は 0 で初期化され、num にはユーザー入力値が入ります。
使用している for ループ:
for(int i = 1; i <= num; ++i)
ここで:
int i = 1: 変数 i を初期化i <= num: i が num 以下ならループ継続++i: 各反復で i を1増やす
i が 11 になると condition が false となり、sum は 0 + 1 + 2 + ... + 10 となります。
範囲ベース for ループ
C++11で、配列 や ベクトル などのコレクションを扱う新しい範囲ベース for ループが導入されました。構文は:
for (variable : collection) {
// ループの本体
}
ここで、collection の各値に対してループが実行され、その値が variable に代入されます。
実例 4: 範囲ベース for ループ
#include <iostream>
using namespace std;
int main() {
int num_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (int n : num_array) {
cout << n << " ";
}
return 0;
}
出力
1 2 3 4 5 6 7 8 9 10
このプログラムでは、int 配列 num_array を宣言・初期化しています。要素数は10です。
範囲ベース for ループで配列のすべての要素にアクセスしています。
C++ 無限 for ループ
for ループの condition が常に true なら、永遠に実行されます(メモリが尽きるまで)。例:
// 無限 for ループ
for(int i = 1; i > 0; i++) {
// コードブロック
}
上記では condition が常に true なので、コードが無限回実行されます。
さらに学ぶための例:
- C++ プログラム:自然数の和を計算
- C++ プログラム:階乗を求める
- C++ プログラム:九九表を生成
次のチュートリアルでは while と do...while ループを学びます。
C言語