为什么Java中的单个语句条件使用块表示?

时间:2017-07-10 23:33:28

标签: java performance if-statement

假设我有以下代码:

public class Test{
    public static void main(String arguments[]){
        if(true){
            System.out.println("Hello, world!");
        }
    }
}

这样做会更有效:

public class Test{
    public static void main(String arguments[]){
        if(true) System.out.println("Hello, world!");
    }
}

除了惯例之外,第一种方法是否有更常用的原因?

4 个答案:

答案 0 :(得分:2)

要回答你的问题,两个约定之间的效率没有差别,但我强烈建议使用大括号,因为代码看起来格式化,任何程序员(菜鸟专家)都很容易快速扫描你的码。

此外,通过确保条件为真或假(或其他部分)时需要执行的所有语句组合在一起,大括号还有助于避免非常难以调试的逻辑错误。

答案 1 :(得分:1)

从不 省略大括号。的 从不 即可。如果我每次看到有人在这里发布一个问题,因为省略了大括号而烧伤了,我就会吃几顿饭。

你现在可能知道 你的意图是什么,但是等几个月,回来看看你是否注意到缺失的支撑。然后你会遇到奇怪的问题,其中只运行条件的第一个语句,其余的都是执行的。 2次击键(如果你有一个好的IDE,则为1次)和你保存的一行不值得在路上遇到这种可能的麻烦。

无论如何,保存一条线是一个错误的胜利,因为它很少有助于提高可读性。

答案 2 :(得分:0)

首次输入时,会更有效率,除非非常轻微。编译时间差异非常小,根本没有执行时间的好处。

答案 3 :(得分:-1)

了解其中一个是否更有效的一种可靠方法是分别运行很多次代码(可能是百万或更多),然后计算每次运行所花费的平均时间。在所有可能性中,您会发现从长远来看,这两段代码每次运行所花费的时间相同,因为这两个代码都会产生相似的字节码(如果不相同)。

关于其中一个更常见的第二部分 - 这是基于意见的。就个人而言,如果它是if-block之后的一行,我将删除括号并将该行拉到if-block旁边,使其看起来像if(condition) mystatement;,否则我将括号括起来。