【问题标题】:Why is this unreachable code? [duplicate]为什么这个无法访问的代码? [复制]
【发布时间】:2016-08-09 11:28:47
【问题描述】:

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

while (false) { x=3; }

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

if (false) { x=3; }

这是完全有效的。

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

我特意问一下if和while语句的区别,因为同一行代码改成if,是有效的,会编译的。

【问题讨论】:

标签: java unreachable-code


【解决方案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。

【讨论】:

    猜你喜欢
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 2014-04-29
    相关资源
    最近更新 更多