
【6日でできるC言語入門】無限ループ
プログラムの世界で「無限ループ」とは、終了条件がないために、際限なく繰り返されるループ処理のことです。C言語では主にwhile文やfor文などで簡単に無限ループを記述できます。
無限ループはバグの原因になることもありますが、**「特定の条件まで何度も同じ処理を繰り返したい」**ときなど、実用的な場面でもよく使われます。
ここでは無限ループの書き方、活用方法、ループを抜けるテクニックなどを詳しく解説します。

1.無限ループの基本
1.1. while文による無限ループ
while文は、条件式がTrue(真)の間ずっと繰り返します。while (1) のように常に真となる条件を書けば、無限ループが作れます。
サンプルプログラム1:Hello!を延々表示
プロジェクト/ファイル名: Lesson29_1/main.c
#include <stdio.h>
int main(void) {
while (1) {
printf("こんにちは!\n");
}
return 0;
}実行結果
こんにちは!
こんにちは!
こんにちは!
...
(終わらない)- この場合、プログラムは「Ctrl + C」などで強制終了しない限り止まりません。
| ループ条件 | 説明 |
|---|---|
| 1, true | ずっと繰り返し続ける。 |
| 0, false | 1回も繰り返さない。 |
1.2. for文による無限ループ
for文でも条件式を省略すれば無限ループになります。
for (;;) {
// 無限に処理を繰り返す
}2.無限ループからの脱出(break文)
2.1. 条件付きでループを抜ける
無限ループは、そのままでは終わりませんが、break文を使うことで任意のタイミングでループから抜けることができます。
サンプルプログラム2:負の値で終了するループ
プロジェクト/ファイル名: Lesson29_2/main.c
#include <stdio.h>
int main(void) {
int num;
printf("マイナスの値を入力すると終了します。\n");
while (1) {
printf("数値を入力してください: ");
scanf("%d", &num);
if (num < 0) {
break;
}
}
printf("プログラムを終了します。\n");
return 0;
}実行結果
「SDLチェック」を「いいえ」にして、プログラムを実行します。
マイナスの値を入力すると終了します。
数値を入力してください: 10
数値を入力してください: 5
数値を入力してください: 0
数値を入力してください: -3
プログラムを終了します。2.2. for文やdo〜while文でのbreak利用
break文は、while文だけでなく、for文やdo〜while文の無限ループでも同じように使えます。
3.無限ループの注意点と活用例
| 用途例 | 解説 |
|---|---|
| ユーザーの入力待ち | 入力があるまでループし続ける。 |
| サーバ・制御プログラム | 常に監視・処理し続ける。 |
| バグによる意図しない無限ループ | 終了条件を忘れた場合に発生 |
- 意図しない無限ループはバグの原因になるので注意しましょう。
- 意図的に使う場合は**必ず抜け道(break等)**を用意しましょう。
まとめ
無限ループは、終了条件が成立しない限り終わらないループを作るためのテクニックです。
- while(1) や for(;;) で簡単に書ける。
- break文でループから安全に抜ける方法も必ず覚えましょう。
- 実用では「常駐処理」や「入力待ち」などで活躍します。
ただし、意図せず無限ループに陥らないように、条件や抜け道の設計には十分注意してください。
