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では未対応である。

再検索