请考虑以下代码:
if (true) {
System.out.println("True");
}
if (false) {
System.out.println("False");
}
您正在使用Eclipse IDE。
您将在Eclipse IDE中针对上述Dead Code
块获得false
警告。
但为什么true
阻止没有警告信息,即使在这种情况下不需要条件?
这个问题可能听起来很愚蠢。但这似乎是一个有效的问题。有什么想法吗?
答案 0 :(得分:1)
这可能是一个以观点为基础的问题,但是,我会在我的意见中喋喋不休。
如果有人输入if (true)
,那么他们要么知道自己在做什么,要么只是在尝试,要么就是没有希望。这不可能是一个错误。 Eclipse需要特殊的逻辑来捕获它,这似乎不值得。
你可以对if (false)
说同样的话 - Eclipse不应该警告这一点,因为输入它的人必须知道他们在做什么。但是,除了这个之外,Eclipse已经具有捕获死代码的逻辑,并且在这种情况下可能需要特殊逻辑不来显示警告。这是可行的,但可能不值得努力,因为警告不是真正的问题。 (我有时会使用if(false)
暂时禁用一段代码,这会导致Eclipse在屏幕上显示黄线。这很重要。)
答案 1 :(得分:0)
我认为这是因为你会期望你所写的陈述被执行。对于死代码,您的期望无法实现,因此您会收到警告。但对于if-case,你的期望总能实现。
答案 2 :(得分:0)
if (false) { ... }
是一个死代码,因为它永远不会在程序中执行。
而if (true) { ... }
被执行,无论如何。!
与循环语句的情况相同。
while (true) { ... }
导致无限循环。通常我们在这种情况下放置System.exit(0);
来终止循环或break;
退出循环。
while (false) { ... }
永远不会被执行。