有练习题,我有以下代码:
while (false) { x=3; }
x = 3是无法访问的代码,我真的不明白为什么。有类似的代码部分:
if (false) { x=3; }
完全有效。
可能是一个noob问题,或者可能是我只是遗漏了一些东西,但如果你能帮助我理解为什么那会很棒,谢谢!
我特别询问if和while语句之间的区别,因为同一行代码更改为if,有效且将编译。
答案 0 :(得分:1)
阅读以下文章,它将回答您的问题: http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.21
while语句可以正常完成iff至少其中一个 以下是真的:
o可以访问while语句,条件表达式是 不是值为true的常量表达式(第15.28节)。
o有一个可到达的break语句可以退出 言。
如果while语句是,则可以访问包含的语句 可达,条件表达式不是常量表达式 其价值为假。