C 言語のループ完全ガイド: for、while、do-while を実例でマスター
C 言語におけるループとは?
ループ は、指定された条件が偽になるまで文のブロックを繰り返し実行します。C では、ループは 本体 と、本体を何回実行するかを決める 制御文 で構成されます。ループをマスターすることは、効率的で読みやすい C プログラムを書く上で不可欠です。
このチュートリアルでは以下を学習します:
- C 言語におけるループの定義と目的
- ループの種類: 事前判定型 vs 事後判定型
- while ループの基礎
- do-while ループの基礎
- for ループの基礎
breakとcontinueの使用- シナリオに適したループの選び方
C 言語のループの種類
C のループは制御条件の位置で分類されます:
- 事前判定型ループ – 条件が本体実行前に評価される (例:
while、for)。 - 事後判定型ループ – 条件が本体実行後に評価される (例:
do-while)。
無限ループ は、終了条件が決して満たされない場合に発生。終了チェックの欠如や常に真の条件が主な原因です。
while ループ
while ループは最もシンプルな事前判定型ループです。構文:
while (condition) { statements; }
条件が最初に評価され、真なら本体が実行されます。各実行後に条件が再評価され、偽になるまで繰り返されます。
例 – 1 から 10 を出力:
#include <stdio.h>
int main() {
int num = 1;
while (num <= 10) {
printf("%d\n", num);
num++;
}
return 0;
}
出力:
1 2 3 4 5 6 7 8 9 10
do-while ループ
do-while ループは本体が最低 1 回実行されることを保証する事後判定型ループです。構文:
do { statements; } while (condition);
例 – 2 の段 (10 まで) を出力:
#include <stdio.h>
int main() {
int num = 1;
do {
printf("%d\n", 2 * num);
num++;
} while (num <= 10);
return 0;
}
出力:
2 4 6 8 10 12 14 16 18 20
for ループ
for ループは、開始、終了、ステップが既知の反復処理に高効率です。構文:
for (initialization; condition; increment) { statements; }
- 初期化は 1 回だけ実行。
- 条件は各反復前にチェック。
- インクリメントでループ変数を更新。
例 – 1 から 10 を出力:
#include <stdio.h>
int main() {
for (int number = 1; number <= 10; number++) {
printf("%d\n", number);
}
return 0;
}
出力:
1 2 3 4 5 6 7 8 9 10
複雑な for ループは複数の式や空の構成要素を含められます:
for (int i = 0, j = num; i < j; i++, j--) { // 文 }
ネストループは多次元配列などでよく使われます。例 – 九九:
#include <stdio.h>
int main() {
int i, j;
int table = 2;
int max = 5;
for (i = 1; i <= table; i++) {
for (j = 0; j <= max; j++) {
printf("%d x %d = %d\n", i, j, i * j);
}
printf("\n");
}
return 0;
}
出力:
1 x 0 = 0 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 2 x 0 = 0 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10
break 文
break キーワードは、最も内側のループまたは switch 文を即座に終了させます。例 – 値が 3 に達したら while ループを停止:
#include <stdio.h>
int main() {
int num = 5;
while (num > 0) {
if (num == 3) break;
printf("%d\n", num);
num--;
}
return 0;
}
出力:
5 4
continue 文
continue キーワードは、現在の反復の残りをスキップし、次のループサイクルに進みます。例 – 数値 5 の出力をスキップ:
#include <stdio.h>
int main() {
int nb = 7;
while (nb > 0) {
nb--;
if (nb == 5) continue;
printf("%d\n", nb);
}
return 0;
}
出力:
6 4 3 2 1
適切なループの選択
条件をいつ評価すべきかに基づいて決定:
- 事前判定が必要 –
whileまたはforを使用。 - 事後判定が必要 –
do-whileを使用。
まとめ
- ループは条件が偽になるまでコードブロックを繰り返す。
- C には 3 つの主要ループ:
while、do-while、for。 - 事前判定型は各反復前に条件評価、事後判定型は反復後に評価。
breakで早期終了、continueで反復スキップ。- アルゴリズムの制御フロー要件に最も適したループを選択。
C言語
- Fluke 772/773クランプメーター:オートメーションループトラブルシューティングの現代的アプローチ
- SINUMERIK 840D CNCプログラミング:WHILEループ活用術
- C# while 文と do-while 文をマスターする:構文、例、ベストプラクティス
- C# for ループをマスターする:構文、フロー、実践例
- C# foreach ループ:配列とコレクションを簡単に反復処理
- C++ forループ完全ガイド:ステップバイステップでマスター
- C++ while/do-whileループ完全ガイド:繰り返し処理をマスターする
- while文 vs do-while文:実践例で明確に比較
- Pythonループ完全ガイド:for、while、break、continue、enumerate
- Javaでアームストロング数を判定・列挙するプログラム
- Javaで回文数を判定する:while文とfor文を使ったアルゴリズム