『新・明解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 がないところは次の文へ落ちる性質を利用したものです。

 


書籍情報



Copyright (C) 2016 "HYOGOKURUMI" All Rights Reserved./「来未炳吾・平極ルミ・HYOGOKURUMI」の発達障害考察を主とした全ての発信は、相互不干渉など特別な約束をした者達を除き、どなたでもご活用できます。ただし著作権は放棄しておりません。あしからずご了承ください。詳細は著作権に関するガイドラインをご一読ください。/「HYOGOKURUMI.site」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。