【C++入門】繰り返し処理を完全解説|for文・while文・do-while文の使い分け
この記事でわかること
この記事では、C++の 繰り返し処理 について解説します
- for 文、while 文、do-while 文の基本
- 繰り返し処理を使ってコードを短く書く方法
繰り返しを理解すると、同じ処理を何度も書く必要がなくなり、一気に「プログラムらしい書き方」になります
繰り返し処理とは
繰り返し処理とは
同じ処理を条件に応じて何度も実行する仕組み のことです
次のような場面でよく使われます
- 1〜10までの数字を順番に表示したいとき
- 正しい入力がされるまで繰り返したいとき
- 配列や文字列の全要素を処理したいとき
手作業で同じ処理を書く代わりに、繰り返し文を使うことで、コードを短く、分かりやすく書けます
繰り返し文の選び方
まずは「どの繰り返し文を使えばいいか」の目安を整理しておきます
| 繰り返し文 | 特徴 |
|---|---|
| for 文 | 回数が決まっているとき |
| while 文 | 条件が true の間繰り返す |
| do-while 文 | 最低1回は必ず実行したいとき |
この違いを意識できるようになると、コード選択に迷いにくくなります
for 文
for 文は 回数が決まっている繰り返し に向いています
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 5; i++) {
cout << "iの値は " << i << endl;
}
return 0;
}iの値は 0
iの値は 1
iの値は 2
iの値は 3
iの値は 4for 文の書き方
for (初期化; 条件; 更新) {
処理
}- 初期化
ループ用変数の初期値を決める - 条件
true の間だけ繰り返す - 更新
1回ごとに変数を変更する
条件が false になった時点で
ループは終了します
while 文
while 文は 条件が成り立っている間、繰り返す 処理に使います
#include <iostream>
using namespace std;
int main() {
int num = 0;
while (num < 3) {
cout << "num = " << num << endl;
num++;
}
return 0;
}num = 0
num = 1
num = 2回数が決まっていない場合や、入力チェックなどに向いています
do-while 文
do-while 文は while 文と似ていますが 必ず1回は処理が実行される のが特徴です
#include <iostream>
using namespace std;
int main() {
int num = 5;
do {
cout << "num = " << num << endl;
num++;
} while (num < 3);
return 0;
}num = 5条件が最初から false でも、一度は処理が行われるため
- メニュー表示
- 入力の初回受付
などで使われることがあります
break と continue
繰り返し処理の流れを制御するために、break と continue があります
| 命令 | 役割 |
|---|---|
| break | ループを強制終了 |
| continue | その回の処理をスキップ |
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 5; i++) {
if (i == 2) continue;
if (i == 4) break;
cout << "i = " << i << endl;
}
return 0;
}i = 0
i = 1
i = 3処理の流れを整理したいときに、とても便利な命令です
実用パターン
配列の合計と最大値
繰り返し処理は配列操作で特に力を発揮します
#include <iostream>
using namespace std;
int main() {
int a[] = {4, 9, 1, 7};
int len = sizeof(a) / sizeof(a[0]);
int sum = 0;
int max = a[0];
for (int i = 0; i < len; i++) {
sum += a[i];
if (a[i] > max) {
max = a[i];
}
}
cout << "sum = " << sum << ", max = " << max << endl;
return 0;
}sum = 21, max = 9このように同じ処理をまとめて書けるのが、繰り返し処理の強みです
範囲 for 文
C++では配列や文字列を より簡単に書ける範囲 for 文 があります
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "Hello";
for (char c : s) {
cout << c << " ";
}
return 0;
}H e l l o- 配列
- std::vector
- 文字列
などで同じように使えます
可読性を上げるためのコツ
繰り返し処理を書くときは
次の点を意識すると読みやすくなります
- 変わらない値はループの外に出す
- ネストが深くなる場合は continue で早めに分岐
- マジックナンバーは定数にする
- 1行でも { } を付ける
これらはC++に限らず、どの言語でも大切な考え方です
まとめ
- 繰り返し処理は同じ処理をまとめて書く仕組み
- for、while、do-while は用途で使い分ける
- break と continue で流れを制御できる
繰り返しを理解すると、配列や文字列、データ処理が一気に楽になります