switch 文(多方向分岐)

形式:

switch (式) {
    case 値1:
        「式」の値が「値1」の場合の処理
        break ;
    case 値2:
        「式」の値が「値2」の場合の処理
        break ;
      .
      .
      .
    default:
       「式」の値が「値1」「値2」…のどれでもない場合の処理
        break ;
}

例文:

x が 1 なら "True."、0 なら "False."、 それ以外の数字なら "Bad Number." と出力する。

switch (x) {
    case 0:
        printf("False.\n");
        break;
    case 1:
        printf("True.\n");
        break;
    default:
        printf("Bad Number.\n");
        break;
}

注意:

  1. case の個数に制限はない。
  2. 「値」は整数の定数でなくてはならない。ただし文字定数は8ビット整数なのでよい。
  3. 各処理の最後に "break ;" がないと、そのまま次の case の処理へ移ってしまう。
    case 値1:
        値1の場合の処理    /* 値1の場合、まずこちらの処理が実行される */
    case 値2:
        値2の場合の処理    /* 値1の場合でも、引き続き実行される */
    
    これを利用し、複数の値のどちらかで行なう処理を次のように記述することもできる。
    case 値1:
    case 値2:
        共通の処理
    
    しかし "break ;" を書かないと処理がわかりにくく、誤りになりやすい。
  4. 各処理を記述する文の最後に ; (セミコロン)を忘れないこと!