【发布时间】:2014-07-21 13:34:59
【问题描述】:
如果我有类似的代码
public static void main(String args[]){
int x = 0;
while (false) { x=3; } //will not compile
}
编译器会抱怨x=3 是无法访问的代码,但如果我有类似的代码
public static void main(String args[]){
int x = 0;
if (false) { x=3; }
for( int i = 0; i< 0; i++) x = 3;
}
尽管if statement 和for loop 中的代码无法访问,但它会正确编译。为什么 java 工作流逻辑没有检测到这种冗余?有什么用例吗?
【问题讨论】:
-
很奇怪,
if (false) { x=3; }部分看起来好像是从JSL 中复制出来的(一直滚动到底部)。 -
不。我在 OCJP 认证演示考试中遇到了这个问题。不过感谢 JSL 链接。
-
好吧,我猜想编写演示的其中一个人很懒... :)
标签: java loops if-statement unreachable-code