假 - 死密码,好的。但没有什么是真的,为什么?

时间:2014-07-27 19:28:44

标签: java eclipse if-statement

请考虑以下代码:

    if (true) {
        System.out.println("True");
    }

    if (false) {
        System.out.println("False");
    }

您正在使用Eclipse IDE。

您将在Eclipse IDE中针对上述Dead Code块获得false警告。

但为什么true阻止没有警告信息,即使在这种情况下不需要条件?

这个问题可能听起来很愚蠢。但这似乎是一个有效的问题。有什么想法吗?

3 个答案:

答案 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) { ... }永远不会被执行。