web-dev-qa-db-ja.com

スイッチのケースをインデントするための好ましい方法は何ですか?

Eclipseで別のスイッチを書いているときに、「switch」ステートメントに適用される、かなり奇妙な(少なくとも私にとっては)デフォルトのインデントに再び遭遇しました。

switch (i) {
case 1:
    ...
case n:
    ...
}

私は別の方法を好む傾向があります:

switch (i) {
    case 1:
        ...
    case n:
        ...
}

どちらの方法があなたにとってより読みやすく、目を楽しませてくれますか?私はまだ100%自分に最適なものを決定していないので、私のコードを読む他の人に最適なものに固執したいと思います。

ところで、これが主観的すぎる場合は、この質問を自由に閉じることができます。 :)

29
alex.zherdev

私も2番目の方法が好きです。ただし、いずれかの方法でインデントするよりも、特定のアプリケーション内および/または特定のチーム内に一貫性を維持することが重要です。

15
RationalGeek

"official" Java Code Conventions によると、これは最初のバリアントです(大文字と小文字を区別するための追加のインデントはありません)。

11
Chris Lercher

私はすべての制御構造本体を次のように単一の(4スペース)タブにインデントする傾向があります。

switch (i) 
{
    case 1:
        ...
    case n:
        ...
}

スイッチは外部制御構造であり、caseディレクティブは本体の一部であると考えています(制御構造の一部である場合でも)。

次に、次のように各ケースをさらにタブインデントします。

switch (i) 
{
    case 1:
        do_something();
    case n:
        do_something_else();
}

これがswitchcase構造の最も読みやすい形式だと思います。

Jkohlheppが、作業中のプロジェクトのコードスタイル規則への準拠が最も重要であると述べているように、何もないプロジェクトで作業している場合は、いくつか開発する価値があります。

9
Bella

1つ目は、標準のスイッチケースのインデントです。

switch (i) {

case 1:
    .... // Here you can write more code in a row than using the second way
    break;
case n:
    ....
    break;
default:
    ....
    break;
}

スイッチ(i)とケース1の間に新しく挿入された線に注意してください。

1
macio.Jun

最初の方法は(私には)論理的に意味がありますが、2番目の方法も好みます。私たちのほとんどは、中括弧内のコードがインデントされることを期待するように条件付けられていると思います。

1
virtualsue

私は2番目の方法を使用します:

switch (i) {
    case 1:
        ...
    case n:
        ...
}
0
Upul Bandara