switch文による多分岐選択

switch は Ruby の case と同様の多分岐選択だ。一般的な形式は次の通り。

switch (値) {
    case 定数1:
        文;
        ....
        break;
    case 定数2:
        文;
        ....
        break;
    default:
        文;
        ....
        break;
}

注意点といえば、

  • 値の比較は等価かどうかしか判定できないこと
  • 値には int か char しか使えないこと
  • case のあとの一連の文には { } が不要なこと
  • 一連の文の最後には break; が必要なこと

break; がないと break; に(あるいは switch の最後に)行き当たるまで文が実行されてしまう。これを利用する書き方もあるようだけど、あまりいいとは思えない。

次のプログラムは、入力された整数に対応する単語を出力する。

#include

int main(void)
{
    int i;

    printf("Input integer: ");
    scanf("%d", &i);

    switch (i) {
        case 1:
            printf("ONE\n");
            break;
        case 2:
            printf("TWO\n");
            break;
        case 3:
            printf("THREE\n");
            break;
        default:
            printf("MANY\n");
    }

    return 0;
}

実行例:

takatoh@nightschool $ ./sample_3_9
Input integer: 2
TWO
takatoh@nightschool $ ./sample_3_9
Input integer: 4
MANY

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください