【问题标题】:why I am not getting error in this java for loop? [duplicate]为什么我在这个 java for 循环中没有收到错误? [复制]
【发布时间】:2020-02-29 04:56:54
【问题描述】:

在下面的语句中,我们将得到无法访问的语句错误。我知道什么 是该错误背后的原因。

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

我的问题是为什么我们不会在下面的语句中得到错误。

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

【问题讨论】:

标签: java


【解决方案1】:

原因是编译器会认为b 可能会被您的程序或线程的其他部分从其先前的值更改为其他值,即使您的程序实际上并没有更改@987654322 @ 但编译器不会在编译时检测到它。 澄清可能只是将 b 设为 final 并看到你会得到同样的错误,因为编译器会注意到 b 是 final 并且不能被程序的其他部分更改,因此将 false 视为 @987654326 的最终值@& 因此会产生错误。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2019-01-08
    • 2014-09-11
    • 2013-02-06
    • 2019-01-09
    • 1970-01-01
    • 2019-07-07
    相关资源
    最近更新 更多