从什么时候开始if / else需要括号?

时间:2012-09-13 15:54:44

标签: java netbeans

我刚刚在最新的Netbeans中开始了一个新项目,我注意到它已经开始给我这样的代码的代码建议:

    if (a == null) x = 0;
    else x = 1;

它说

If-Else Statements MUST use Braces

它希望“修复”它:

    if (a == null) {
        x = 0;
    }
    else {
        x = 1;
    }

我根本不想要。我特别关注这一点,它使代码看起来不必要地混乱。我有成千上万行代码不使用(显然不需要)额外的大括号。假设Netbeans做对了,这个要求何时发生,是什么驱使它?

P.S。我知道我可以关掉那些消息。

更新问题:

我写这篇文章的方式可能并不明显,但根据@ corsiKa的评论,我可能会澄清一下。我真的不想讨论花括号是否是理想的。我想知道他们是否已经必要

编写和制作Netbeans的男孩和女孩通常很好地插入社区,以及Java正在采取什么方向或考虑什么。所以我认为有可能当他们使用咨询机制向我们提醒 java语法将要改变时并且我正在使用的代码实践将在某些时候被弃用

从下面的saber_raider的回答看来答案是否定的。似乎Netbeans的建议被夸大了,因为Mystical建议使用 MUST 这个词。

4 个答案:

答案 0 :(得分:11)

那是代码咨询。围绕if/else括号总是安全的。缺少括号可能会在维护时造成混乱。

答案 1 :(得分:9)

这绝对不是java的语法要求,而只是netbeans的一个特性。 如果您确定自己在做什么,请随意将其关闭......

答案 2 :(得分:4)

毕竟这是一个建议,而不是一个规则。我已经看到很多情况下缺少括号直接影响“可读性”和维护,因为if只包含下一行代码而不是下两行,如下例所示:

if(condition)
    doSomething();
    condition = false;

condition始终设置为false并导致错误。

在您说明(变量)的特定情况下,我会使用内联if(x = a == null ? 0 : 1;)而不是if-else,但这只是我的观点。

答案 3 :(得分:2)

它并不需要,但它使得阅读它的人更容易理解代码。 它也可以帮助您避免发现错误。