case
読み:ケイス
外語:case
C/C++/Java/C#などの予約語の一つ。
概要
switch文の分岐先を示すラベルを指定する。
DelphiなどのPascal系の言語では、case文自体がswitch文相当の分岐文として存在する。
特徴
C/C++
通常の構文は、switch文中に書き、caseでラベルを指定する。
switch (var)
{
case 0:
printf("var is 0\n");
break;
case 1:
printf("var is 1\n");
break;
default:
printf("var is the others\n");
break;
}
switch文が実際にすることは、マッチするcaseラベルへのジャンプであるため、あるcaseラベルに分岐したあと、何もしなければ後続するcaseラベルの処理も続けて実行される。これを回避するためにbreak文がある。
また、いずれのcaseにも該当しない条件を指定するために、defaultラベルが用意されている。
GCC拡張
標準規格では、case文のcaseに指定できる値はただ一つだが、GCCではPascalのように値の範囲を指定することができる。
switch (var)
{
case 0...10:
printf("var is 0 to 10\n");
break;
case 11...100:
printf("var is 11 to 100\n");
break;
default:
printf("var is the others\n");
break;
}
clang 3.0では未対応である。
再検索