Menu
Coddy logo textTech

無限ループ

CoddyのC#ジャーニー「基礎」セクションの一部 — レッスン 47/69。

無限ループとは、条件が常に true と評価されるために停止することのないループのことです。これらのループは、どのループ型(forwhiledo-while)でも発生する可能性がありますが、条件が明示的に指定される while ループや do-while ループで最も一般的に見られます。

これは無限の while ループの例です:

while (true) {
    Console.WriteLine("This will print forever!");
}

この場合、条件は単に true であり、これは常に true と評価されます。したがって、ループは無限に実行され、メッセージを何度も繰り返し出力します。

無限ループを作成するもう一つの方法は、for ループの条件を省略することです:

for (;;) {
    Console.WriteLine("This also prints forever!");
}

ここでは、forループの初期化、条件、更新の部分がすべて省略されています。これにより、永久に実行されるループが作成されます。

無限ループは、ロジックのエラーによってループの条件が常に true になる場合など、意図せず発生することもあります。

int i = 0;
while (i < 10) {
    Console.WriteLine("i is: " + i);
    // iをインクリメントするための i++ が不足しています
}

この例では、変数 i は一度もインクリメントされないため、条件 i < 10 は常に true になります。これにより、"i is: 0" を無限に出力し続ける無限ループが発生します。

無限ループは、手動で停止されるまで実行を続ける必要があるサーバープログラムなど、場合によっては便利なことがあります。しかし、適切に処理されない場合、プログラムのフリーズやクラッシュの原因となることもあります。

チートシート

無限ループとは、条件が常に true と評価されるため、決して停止しないループのことです。

意図的な無限 while ループ:

while (true) {
    Console.WriteLine("This will print forever!");
}

省略された部分を持つ無限 for ループ:

for (;;) {
    Console.WriteLine("This also prints forever!");
}

意図しない無限ループ(インクリメントの欠如):

int i = 0;
while (i < 10) {
    Console.WriteLine("i is: " + i);
    // iをインクリメントするための i++ が欠落しています
}

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン