鍋あり谷あり

テーマを決めずに適当に書いています。

switch の ラベル

switch 文の話の続き。
今日、C++ の本を見てみたら、どうも switch のラベルは 「switch( 式 )」 の直後に書いていいらしいということがわかった。
具体的には:

switch( peach() )
case 0:
if ( banana() )
case 1:
{
case 2:
	pear();
}
// case 3: // これはエラー
else
case 4:
{
case 5:
	melon();
case 6:
	mandarin();
}

の、case 0:。
case1: と case 4: は意外な位置にあるが、合法である。
case1: と case 2: は同じことだし、両方とも人に勧められる case ラベルの位置ではないが、 case 2: の方が幾分マシであるように思える。case 4: と case 5: も同様で、case 5: の方がマシに思える。

いずれにせよ、こういうことを、仕事で書くことはお勧めしない。