なぜ私はループのために、このJavaでエラーを取得していないのですか?

user9018479:

ステートメントの下では、到達不能statemntエラーが発生します。私は、そのエラーの背後にある理由が何であるかを知っています。

for(;false;)
System.out.println("Unrechable statement");

我々はstatemnt以下のエラーを取得していないよ、なぜ私の質問です。

boolean b = false;
for(;b;)
System.out.println("NO error");
Afsar edrisy:

その理由は、チャンスがあるかもしれないことを考えるだろうコンパイラでb、あなたのプログラムまたはスレッドの他の部分でいくつかの他の値にその前の値から変更をされているプログラムは、実際に変更されていないにもかかわらず、bコンパイラは、コンパイル時にそれを検出しません時間。明確化だけで作ることができb、最終的なよう&コンパイラはそれがわかりますので、あなたは、同じエラーになります見るb最終的なものと、プログラムの他の部分で変更することはできませんので、検討していくfalseの最終的な値として、bこれ&エラーを生成します。

final boolean b = false;
for(;b;)
System.out.println("NO error"); //error: unreachable statement

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=16762&siteId=1