什么样的风格更好?

时间:2010-09-18 22:46:21

标签: java convention

这样:

public void foo() {
    for (int i = 0; i < rows; i++)     // <--- no brace!
        for (j = 0; j < columns; j++)   // <--- no brace! 
            table[i][j] = new Blabla(i, j);
    other();
}

或者这个:

public void foo() {
    for (int i = 0; i < rows; i++) {
        for (j = 0; j < columns; j++) {
            table[i][j] = new Blabla(i ,j);
        }
    }
    other();
}

7 个答案:

答案 0 :(得分:13)

最好包括大括号,否则有人可能会添加一条额外的行,认为它将在循环内部,但实际上它只会在循环完成后运行一次。

public void foo() {
    for (int i = 0; i < rows; i++)
        for(j = 0; j < columns; j++)
            table[i][j] = new Blabla(i, j);
            count++;                // <--- potential bug!
    other();
}

答案 1 :(得分:4)

简单的事实是,添加括号将减少错误。我认为一旦格式正确,这些片段的可读性就相同。

答案 2 :(得分:2)

这是品味问题。我个人总是使用括号,因为我喜欢它,并且我被“添加另一个语句,因为它没有分隔”而被阻止,因为它没有分隔。“

我变得更加宽容,因为我们现在有一个策略让Eclipse在每次保存时重新格式化所有源文件(称为“保存操作”),因此缩进始终是正确的,并且不会欺骗您认为语句是当他们在外面时,在一个街区内。强烈推荐。

答案 3 :(得分:1)

我总是会包含curlies,除非它只是for的主体中的一个语句(或任何其他语句,如if / while),你可以看到它是一个缩短的样式。如果你把curles留在你的情况下,你可以很容易地通过在错误的地方添加一个方法调用来改变方法的行为,因为你认为它将落在for的主体中。

答案 4 :(得分:1)

第二个更具可读性。

我可以处理从单个语句中省略大括号,但嵌套太多了。

答案 5 :(得分:0)

您是指for循环中括号前的空格吗?

我个人说那里没有空间,但它并没有让我夜不能寐。最重要的是要保持一致。

答案 6 :(得分:0)

对于非常简单的清晰代码,没有大括号。

如果有人来了并添加了错误的范围内的东西,不注意周围的代码,不再看新代码,我不会让他再次触摸我的代码。