最後のケースの後にbreak
を含めるかどうか、常にdefault
を含めるのは少し困惑しています。
switch (type) {
case 'product':
// Do behavior
break;
default:
// Do default behavior
break; // Is it considered to be needed?
}
break
sの唯一の目的は、残りのswitch
- caseでコードが実行されないようにすることです。
次に、一貫性のためにbreak
を最後に持つこと、またはbreak
が機能的使用をまったく適用しないためにそれをスキップすることは、より論理的であると考えられますか?私の意見では、どちらも論理的には異なっています。
これは、.php
ファイルを?>
で終了することとある程度比較できます。私は?>
で終わることはありませんが、そのほとんどは空白スペースを出力するリスクがあるためです。
break
は、最後の選択肢の後には技術的に必要ありません(これは、default
である必要はありません。完全に合法であり、default
分岐先);コードがswitch
ステートメントの最後を通過するか、最後のブランチの最後でbreaks
がアウトになるかは、同じ結果になります。
ただし、次の3つの理由により、最後のブランチを含むすべてのブランチをreturn
またはbreak
ステートメントで終了します。
break
またはreturn
で終わっている場合、意味を変更せずにブランチを並べ替えることができます。これにより、そのような並べ替えで回帰が発生する可能性が低くなります。switch
ブロックの最後のブランチを前のブランチとまったく同じように終了すると、両方が満たされ、読みやすく、理解しやすくなります。明示的なbreak
を省略した場合、最後のブランチは光学的に異なります(これはクイックスキャンで特に重要です)。それが実際に異なっていないことを確認するために、リーダーは要点に降りる必要があります。個々のステートメントを読むことの骨の折れるレベル。switch
ブランチをbreak
で終了する習慣をつけると、しばらくすると自動的に分岐し、重要な場所で誤ってそれを忘れてしまう可能性が低くなります。すべてのブランチの終わりにbreak
を期待するように自分自身をトレーニングすると、不足しているbreak
ステートメントを検出するのにも役立ちます。これは、デバッグとトラブルシューティングに最適です。ほとんどの言語でのswitch-case
の使用に関する曖昧さを考慮して、それを使用する場合明示的に、および意図的に望まない場合を除いて、常にbreak
ステートメントを使用することをお勧めします。
これは、一部の理由により、すべてのcase
呼び出しが同じように見えるため、私の意見では読みやすさが向上するためです。しかし、それはまた、誰か(あなたでも)が後の最後のブロックの後にcase
を挿入することを選択した場合、前のブロックをチェックすることを気にする必要がないため、追加時のバグを減らすのに役立ちます新しいコード。
lastの場合、break
は必要ありません。 Wordは "last"(ないdefault)を使用します。これは、デフォルトのケースが最後のケースである必要がないためです。
_switch(x)
{
case 1:
//do stuff
break;
default:
//do default work
break;
case 3:
//do stuff
}
_
また、2つの連続するbreak
sの間にはcase
が必要です。時々、他の人が私のコードを参照するときに読みやすくするために、私のコードでif(a!=0)
を使用します。 if(a)
を使用することを選択できます。これは私の選択の問題です