C/Objective-C/C++のすべてのswitch caseステートメントで中括弧を使用しています
少し前まで、中括弧内にbreak;
ステートメントを含めることが良いか悪いかを検討していませんでした。それは問題ではないと思いますが、それでも質問する価値があると思います。
switch (foo) {
case 1: {
// stuff
break;
}
default: {
break;
}
}
対
switch (foo) {
case 1: {
// stuff
} break;
default: {
// stuff
} break;
}
短い答え:それは問題ではありません。
もう少し詳細な答えを与えてください...
公式のC99仕様では、breakステートメントについて次のように述べています。
Breakステートメントは、最小の囲みスイッチまたは反復ステートメントの実行を終了します。
だからそれは本当に重要ではありません。私は中括弧の中に休憩を入れました。中かっこの内側の他の場所で改行することもできるので、中かっこで終了改行を持つこともより論理的です。一種のreturnステートメントのようなものです。
中括弧とスイッチを組み合わせる方法には、さまざまなコーディングスタイルがあります。例では、好みのものを使用します。 break
ステートメントは、場所に関係なく、最も内側のループまたはスイッチステートメントから抜け出します。たとえば、1つのケースに複数の休憩を入れることができます。
switch (foo) {
case 1:
{
if (bar)
break;
bar = 1;
...
}
break;
}
isは多少悪い習慣と見なされていますが、ケースをどこにでも置くことができます。ケースのラベルはgotoのラベルによく似ています。私がこのようなものを書いたのは偶然です:
switch (foo) {
case 1:
bar = 1;
if (0) {
case 2:
bar = 2;
}
...
break;
}
ただし、注意して使用してください。
字句スコープに必要な場合を除いて、最初からカーリーを使いたくないと思います。最初の例は私にはよく見えますが、本当の答えはそれは好みの問題だと思います。
明確に述べたように、これは個人的なスタイルの問題にすぎませんが、私は常にブレイクステートメントを中括弧の外に置きます。