java – Unreachable语句:while true vs if true
这个问题在这里已经有一个答案:>
Unreachable statement error using while loop in java 2
> Why does Java have an “unreachable statement” compiler error?8 > if(false) vs. while(false): unreachable code vs. dead code2 我应该如何理解这个Java编译器的行为? while (true) return; System.out.println("I love Java"); // Err: unreachable statement if (true) return; System.out.println("I hate Java"); // OK. 谢谢. 编辑: 几分钟之后,我发现了一点: 在第一种情况下,由于无限循环,编译器会抛出错误.在这两种情况下,编译器都不会考虑语句中的代码结果. 编辑二: 现在对javac有什么印象: if (true) return; // Correct } while (true) return; // Correct } 它看起来像javac知道什么是内部循环,如果结果, 公共静态最终编辑三: 放弃 解决方法
当java中的语句可达时,有非常严格的规则.这些规则是易于评估的设计,而不是100%的.它应该防止基本的编程错误.要理解java中的可达性,您仅限于这些规则,“常用逻辑”不适用.
所以这里是Java语言规范14.21. Unreachable Statements的规则
所以没有别的,if-then之后的语句总是可以访问的
条件是一个常数表达式“真”,没有中断.因此,它不能正常完成. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |