if(false)vs.while(false):无法访问的代码与死代码

我在Eclipse中尝试了以下方法:

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

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

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

回答:

在上可达代码JLS部分解释了理由。本质上,Java通常不应该像C常规那样使用条件编译#ifdef,但是在某些情况下(例如调试,尤其是向后二进制兼容性),需要允许编译器完全剥离代码,因此特定的结构if(false)为此被允许。

以上是 if(false)vs.while(false):无法访问的代码与死代码 的全部内容, 来源链接: utcz.com/qa/407203.html

回到顶部