java - if(false) vs. while(false) : unreachable code vs. 死代码

标签 java dead-code unreachable-code

我在 Eclipse 中尝试了以下操作:

  • if (false) {}:警告“死代码”
  • while (false) {}: 编译错误'无法访问的代码'

我想知道这种差异是否存在真正的“原因”。这个我已经找到了...

Unreachable code compiler error

...但是为什么不允许 while (false) 用于相同的调试目的?

最佳答案

JLS section on unreachable code解释了理由。本质上,Java 通常不应该使用条件编译,就像 C 通常使用 #ifdef 所做的那样,但是在某些情况下(例如调试,特别是向后二进制兼容性)允许编译器完全去除代码是必需的,因此允许特定构造 if(false) 用于该目的。

关于java - if(false) vs. while(false) : unreachable code vs. 死代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20299914/

相关文章:

java - Firebase Cloud Messaging 在 Java 中发送 HTTP-Post

java - 使用计数器将数组插入到 HashMap 中

javascript - 找到死的 JavaScript 代码?

java - if(false) 与 while(false) : unreachable code vs. 死代码

java - Eclipse下Java中无法访问的代码错误与死代码警告?

java - 为什么代码无法访问?

用于更少 CSS 的 Java 编译器?

java - StringIndexOutOfBound 异常

qt - 如何识别 QML 中未使用的代码和文件

c# - 使用 Windows 窗体中的按钮