【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, false1回も繰り返さない。

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文でループから安全に抜ける方法も必ず覚えましょう。
  • 実用では「常駐処理」や「入力待ち」などで活躍します。

ただし、意図せず無限ループに陥らないように、条件や抜け道の設計には十分注意してください。