-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

中かっこを含めることをお勧めします。そうしないと、誰かがループ内にあると考えて余分な行を追加する可能性がありますが、実際には、ループが完了した後に1回だけ実行されます。

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の本文に1つのステートメント(またはif / whileなどの他のステートメント)が1つだけで、短縮されたスタイルであることがわかる場合を除いて、常にカーリーを含めます。カーリーを省略した場合、forの本体に到達すると思われるため、間違った場所に1つのメソッド呼び出しを追加するだけで、メソッドの動作を簡単に変更できます。

于 2010-09-18T22:52:42.887 に答える
1

2番目のものはより読みやすいです。

1つのステートメントから中括弧を省略することはできますが、ネストするのは多すぎます。

于 2010-09-18T22:53:25.053 に答える
0

forループのブラケットの前のスペースを参照していますか?

個人的にはそこにはスペースがないと言いますが、夜は目が覚めません。最も重要なことは一貫性を保つことです。

于 2010-09-18T22:48:30.900 に答える
0

そのような非常に単純な明確なコードの場合、ブレースはありません。

誰かが来て、間違ったスコープに何かを追加し、周囲のコードに注意を払わず、新しいコードをもう一度見ていない場合、私は彼に二度と私のコードに触れさせません。

于 2010-09-18T23:46:13.650 に答える