最初のループは無限ループです。条件は常に真であるため、常に満たされます。
それは書くようなものです:
int i=0;
while(true)
i++;
ご覧のとおり、条件は常にtrue
あり、これを変更するものはありません。
2番目のループはUnreachable code
、このループの下にあるコードに到達することはないためです(false
常にfalseであり、変更することはありません)。したがって、冗長です。
14.21章を参照してください。到達不能なステートメント
プログラマーが人間であることを知っているのでJava
:)間違いを防ぐためにこれについて通知します。
または、その下のコードは実行されないwhile(false)
ため、2番目のループ(またはループ)は意味をなさないことに注意してif(false)...
ください。そうではないかもしれないので、この場合、コンパイラはそれについて文句を言いません。while(false)
if(false)
else
OPアップデートについて:
3番目のケースでは、値が変数に割り当てられているため、コンパイルエラーは発生しませんfalse
。この場合、変数を再割り当てしてtrue
値を含めることができます。したがって、コンパイラはエラーを発生させません。変数がとして宣言されている場合、final
この変数を新しい値に割り当てることはできないため、コンパイラーでエラーが発生することに注意してください。したがって、for
ループの下のコードに到達できなくなります。