無限ループ
CoddyのC#ジャーニー「基礎」セクションの一部 — レッスン 47/69。
無限ループとは、条件が常に true と評価されるために停止することのないループのことです。これらのループは、どのループ型(for、while、do-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++ が欠落しています
}自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。