『新・明解C言語 入門編 第2版』演習問題解答例 3ー13

演習3ー13

問:List3-18のプログラムを、if 文ではなく switch 文を用いて書き換えよ

// Ex0313.c

#include <stdio.h>

int main(void)
{
    int sw;
    int month;

    printf("何月ですか?:");
    scanf("%d", &sw);

    if (sw >= 3 && sw <= 5) {
        month = 1;
    }
    else if (sw >= 6 && sw <= 8) {
        month = 2;
    }
    else if (sw >= 9 && sw <= 11) {
        month = 3;
    }
    else if (sw == 1 || sw == 2 || sw == 12) {
        month = 4;
    }
    else {
        month = 5;
    }

    switch (month) {
    case 1 : printf("%d月は、春です。", sw); break;
    case 2 : printf("%d月は、夏です。", sw); break;
    case 3 : printf("%d月は、秋です。", sw); break;
    case 4 : printf("%d月は、冬です。", sw); break;
    case 5 : printf("%d月は、存在しません。", sw); break;
    }
    
    //printf("何月ですか?:");
    //scanf("%d", &month);

    //switch (month) {
    //case 12 :
    //case 1  :
    //case 2  : printf("%d月は、冬です。", month); break;
    //case 3  :
    //case 4  :
    //case 5  : printf("%d月は、春です。", month); break;
    //case 6  :
    //case 7  :
    //case 8  : printf("%d月は、夏です。", month); break;
    //case 9  :
    //case 10 :
    //case 11 : printf("%d月は、秋です。", month); break;
    //default : printf("%d月は、存在しません。", month); break;
    //}

    return 0;
}


コメント

 私が自力でつくったものは無駄に長くて、もっと短くできると教わった書き方をコメントアウトに残しました。break がないところは次の文へ落ちる性質を利用したものです。

 


書籍情報


コメント

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