-1

这:

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();
}
4

7 回答 7

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();
}
于 2010-09-18T22:52:16.427 回答
4

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

于 2010-09-19T01:30:10.103 回答
2

这是一个品味问题。就我个人而言,我总是使用方括号,因为我喜欢它,而且我被“添加另一个语句,因为它没有被分隔而最终在块之外结束”所困扰。

我变得更宽容了,因为我们现在有一个策略是让 Eclipse 在每次保存时重新格式化所有源文件(称为保存操作),所以缩进总是正确的,不会欺骗你认为语句在块内当他们在外面时。强烈推荐。

于 2010-09-18T23:00:51.833 回答
1

除非它只是 for 主体中的一个语句(或任何其他语句,如 if/while),否则我将始终包含花括号,并且您可以看到它是一种缩短的样式。如果你在你的情况下不使用花括号,你可以很容易地通过在错误的地方添加一个方法调用来改变方法的行为,因为你认为它会落在 for 的主体中。

于 2010-09-18T22:52:42.887 回答
1

第二个更具可读性。

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

于 2010-09-18T22:53:25.053 回答
0

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

我个人会说那里没有空间,但它不会让我在晚上保持清醒。最重要的是要保持一致。

于 2010-09-18T22:48:30.900 回答
0

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

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

于 2010-09-18T23:46:13.650 回答