-2

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

while (false) { x=3; }

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

if (false) { x=3; }

这是完全有效的。

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

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

4

1 回答 1

1

阅读以下文章,它将回答您的问题: http ://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.21

当以下至少一项为真时,while 语句可以正常完成:

o while 语句是可访问的,并且条件表达式不是值为 true 的常量表达式(第 15.28 节)。

o 有一个可到达的 break 语句退出 while 语句。

如果 while 语句可访问且条件表达式不是值为 false 的常量表达式,则包含的语句是可访问的。

于 2016-08-09T11:35:57.670 回答