無限ループ
CoddyのJavaジャーニー「基礎」セクションの一部。レッスン 49/73。
無限ループとは、条件が常に true と評価されるため、決して停止しないループです。このようなループは、どのループ型(for、while、do-while)でも発生する可能性がありますが、条件が明示的に記述されるため、最も一般的に while ループや do-while ループに関連付けられます。
無限whileループの例を次に示します。
while (true) {
System.out.println("This will print forever!");
}この場合、条件は単にtrueであり、常にtrueと評価されます。したがって、ループは無期限に実行され、メッセージを何度も繰り返し出力します。
無限ループを作成するもう1つの方法は、forループで条件を省略することです:
for (;;) {
System.out.println("This also prints forever!");
}ここでは、forループの初期化、条件、更新の部分がすべて省略されています。これにより、永遠に実行されるループが作成されます。
無限ループは意図せず発生することもあります。たとえば、論理エラーによってループの条件が常に true になる場合です。
int i = 0;
while (i < 10) {
System.out.println("i is: " + i);
// i をインクリメントする i++ が欠けている
}この例では、変数 i は決してインクリメントされないため、条件 i < 10 は常に true です。これにより無限ループが発生し、「i is: 0」と無期限に出力し続けます。
無限ループは、手動で停止するまで実行し続ける必要があるサーバープログラムなど、場合によっては便利です。ただし、適切に処理しないと、プログラムがフリーズしたりクラッシュしたりする原因にもなります。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Javaオンラインコンパイラ