为什么这个无法访问的代码?

时间:2016-08-09 11:28:48

标签: java unreachable-code

有练习题,我有以下代码:

while (false) { x=3; }

x = 3是无法访问的代码,我真的不明白为什么。有类似的代码部分:

if (false) { x=3; }

完全有效。

可能是一个noob问题,或者可能是我只是遗漏了一些东西,但如果你能帮助我理解为什么那会很棒,谢谢!

我特别询问if和while语句之间的区别,因为同一行代码更改为if,有效且将编译。

1 个答案:

答案 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语句是,则可以访问包含的语句   可达,条件表达式不是常量表达式   其价值为假。