Infinite Loop
CoddyのJavaジャーニー「基礎」セクションの一部 — レッスン 49/73。
無限ループとは、その条件が常に true に評価されるため決して停止しないループです。これらのループは任意のループタイプ(for、while、do-while)で発生する可能性がありますが、条件が明示的に記述されるため、最も一般的に while および do-while ループに関連付けられます。
無限のwhileループの例を以下に示します:
while (true) {
System.out.println("This will print forever!");
}この場合、条件は単にtrueであり、これは常にtrueに評価されます。したがって、ループは無限に実行され、メッセージを繰り返し出力します。
for ループの条件を省略することで、無限ループを作成する別の方法もあります:
for (;;) {
System.out.println("This also prints forever!");
}ここでは、for ループの初期化、条件、および更新の部分がすべて省略されています。これにより、無限に実行されるループが作成されます。
無限ループは、論理エラーのためにループの条件が常にtrueである場合など、意図せず発生することもあります:
int i = 0;
while (i < 10) {
System.out.println("i is: " + i);
// Missing i++ to increment i
}この例では、変数iが決してインクリメントされないため、条件i < 10は常にtrueです。これにより、無限ループが発生し、"i is: 0" が無期限に印刷され続けます。
無限ループは、サーバープログラムのように手動で停止するまで実行し続ける必要がある場合など、一部のケースで有用です。しかし、適切に処理しないとプログラムがフリーズしたりクラッシュしたりする原因にもなります。
チートシート
無限ループとは、その条件が常にtrueに評価されるため決して停止しないループです。
意図的な無限whileループ:
while (true) {
System.out.println("This will print forever!");
}意図的な無限forループ(すべての部分を省略):
for (;;) {
System.out.println("This also prints forever!");
}非意図的な無限ループ(インクリメントの欠如):
int i = 0;
while (i < 10) {
System.out.println("i is: " + i);
// Missing i++ to increment i
}自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else