0

2 番目の for ループが、中かっこが必要であることを意味するステートメントと見なされるかどうかはわかりません。

だから私が求めているのはこれらでしょうfor-loops

for (int i=1;i<a.length;i++){
    for (int j=0;j<a[i].length;j++){
        a[i][j] = b[i][j]-c[i][j];
    }
}

これらと同じことを意味しますfor-loops:

for (int i=1;i<a.length;i++)
    for (int j=0;j<a[i].length;j++)
        a[i][j] = b[i][j]-c[i][j];
4

6 に答える 6

7

短い答え:いいえ

長い答え:する必要はありませんが、する必要があります。コードの可読性が向上し、無駄なデバッグや深夜の時間を節約できます。また、Oracle のコード規則では、常に中かっこを使用する必要があることが明確に示されています。

これも書くことができます:

for (int i=1;i<a.length;i++)
    for (int j=0;j<a[i].length;j++)
        if (a[i][j] > 500)
            if (checkForSomethingStupid(a[i][j]))
                a[i][j] = b[i][j]-c[i][j];
于 2013-01-26T00:11:33.243 に答える
2

必要ありませんが、多くの人は、特にインデントが不正確である可能性がある場合に、中括弧が読みやすさを向上させると信じています。例えば:

for (int i=1;i<a.length;i++)
    for (int j=0;j<a[i].length;j++)
a[i][j] = b[i][j]-c[i][j];

さっと読んでいると、3行目が複数回実行されていることに気付かないかもしれません。しかし、この場合...

for (int i=1;i<a.length;i++) {
    for (int j=0;j<a[i].length;j++) {
a[i][j] = b[i][j]-c[i][j];
    }
}

・・・もっとわかりやすい。そして、私を信じてください、人々はそのようなバグを探して DAYS を無駄にしました!

そして、ここに別の例があります:

for (int i=1;i<a.length;i++) 
    for (int j=0;j<a[i].length;j++)
        a[i][j] = b[i][j]-c[i][j];
        count++;
于 2013-01-26T00:20:13.790 に答える
1

はい、両方のループは同じです。ただし、コーディング規則に従って、ループ ブロックにコードが 1 行しかない場合でも、curly を使用することをお勧めします。これは、コードの可読性を維持するためです。

于 2013-01-26T00:19:03.630 に答える
1

1 つのステートメントであるため、中かっこは必要ありません。そうしないと、コーディング エラーが発生することがあります。(一文追加時)

于 2013-01-26T00:11:48.503 に答える
1

はい、それらは同じです。

中括弧は複数のステートメントを含める必要がありますが、最初のステートメントの後には for を 1 つしか使用しないためです (他のステートメントを使用しますが、for サイクルに含まれています)。

ただし、中括弧の使用は読み取りを簡素化するため非常に便利です。そのため、コードを記述するより良い方法は次のようになります。

for (int i=1;i<a.length;i++)
{
    for (int j=0;j<a[i].length;j++)
    {
        a[i][j] = b[i][j]-c[i][j];
    }
}

たとえ、この状況で言ったように、それらは必要ではありません..

ただし、次の状況では:

for (int i=1;i<a.length;i++)
    for (int j=0;j<a[i].length;j++)
    {
        a[i][j] = b[i][j]-c[i][j];
        a[i][j] = a[i][j]*a[i][j]; //or anything other statement you want to do in this for-cycle
    }

最初の for-cycle にはステートメントが 1 つしか含まれていないため中かっこは必要ありません。2 番目の for-cycle には 2 つのステートメントが含まれているため中かっこが必要です。

于 2013-01-26T00:13:29.787 に答える
0

他の人が述べたように、それは必要ではありませんが、一般的には良い習慣と考えられています.

ただし、場合によっては必要になる場合もあります。自動化されたツール (checkstyle や PMD など) によってコード品質の制限が適用されるプロジェクトに取り組んでいる場合、中かっこを省略するとビルドに失敗する可能性があります。

于 2013-01-26T00:43:35.230 に答える