C言語の基礎(switch文)

スポンサーリンク
C言語

以前に取り上げたif文は、ある条件の判定結果でプログラムの流れを二つに分岐した。ここでは、switch文を取り上げる。一度に複数に分岐できる。

switch(評価したい変数) {
     case 値1:
          処理1
          break;
     case 値2:
          処理2
          break;
     default:
          デフォルトの処理
}

switch文は次のように動作する。

  1. 式を評価して値を求める。
  2. 式の値に一致する値が書かれているcaseがある場合、そのcase以下の文を実行する。そして、break文を実行し、switch文を終了する。
  3. 式の値がいずれのcaseにも一致しない場合は、default以下の文を実行する。そして、break文を実行し、switch文を終了する。

なお、defaultは省略できる。このとき、式の値がいずれのcaseにも一致しない場合は、何も処理をしないでswitch文を終了する。

このswitch文で、読み込んだ月の季節を表示するプログラムを考えてみよう。

//読み込んだ月の季節を表示するプログラム

#include <stdio.h>

int main(void) {
    
    int month; //月
    
    printf("何月ですか:");
    scanf("%d",&month);
    
    switch(month)
    {
        case 3:
        case 4:
        case 5:
            printf("%d月は春です\n",month);
            break;
        case 6:
        case 7:
        case 8:
            printf("%d月は夏です\n",month);
            break;
        case 9:
        case 10:
        case 11:
            printf("%d月は秋です\n",month);
            break;
        case 12:
        case 1:
        case 2:
            printf("%d月は冬です\n",month);
            break;
        default:
            printf("%d月はありませんよ!!\n",month);
    }
    return 0;
}

実行結果

何月ですか:3
3月は春です
何月ですか:8
8月は夏です
何月ですか:13
13月はありませんよ!!

break文がないところでは、プログラム流れが次の文に落ちることがわかる。これをフォール・スルー(fall through)と呼ぶ。

いかがであろうか。この小文でC言語に少しでも興味を持っていただけたら幸いである。

(参考文献)新・明解C言語 入門編 第2版 柴田望洋著(SBクリエイティブ)、基礎C言語 (株)アンク著(インプレス )

コメント

タイトルとURLをコピーしました