c-lang:switch文
code:cpp
switch (式) {
case 定数式 1:
<文 1>
case 定数式 2:
<文 2>
case 定数式 3:
<文 3>
break;
default:
<文 x>
}
式は整数を結果とするものでなくてはならない。
式を評価し、その値がどれかのcase定数式と一致したら、そのcaseラベルにジャンプしてそこから処理を行う。
default句は省略可能
式の評価値がどのcase定数式とも一致しないで、dafaultが書かれていればその部分が実行される。
switch 文の書き方
switch、case文の終わりには、通常は、必ずbreak文を書く。
switch、case文において、breakがない場合には、それが意図したものであることをコメントに書いておく。
(コメントされていない場合は、break文の書き落しを疑ってみる。)
switchのcase文の直後にはステートメントを置かない。
例:
code:cpp
switch(式) {
case 定数式:
ステートメント;
break;
case 定数式:
ステートメント;
/* Nobreak */
case 定数式:
ステートメント;
break;
default
break;
}
default の判定情報の利用はなるべく避ける。
default と判定がない場合でも default 文の処理は書くようにする。
(switch の式の条件の判定の見落としを発見するため)
case ラベルの順序は、該当する頻度の高い順とする。
同一頻度と考えられる場合には、アルファベット順など組織的な順序づけを行なう。
default ラベルは、予期しない場合を検出するために必ず最後におく。
break 文のない switch 文は使用しない。
(例外:文が空の場合)
c-lang:case文
c-lang:default文
c-lang:break文