/*01*/ #include <stdio.h>
/*02*/
/*03*/ main()
/*04*/ {
/*05*/ int sw;
/*06*/
/*07*/ printf("C言語は難しいですか?\n");
/*08*/ printf("(番号を選んでください。)\n");
/*09*/ printf("1:簡単 2:難しい 3:混乱 -> ");
/*10*/ scanf("%d", &sw);
/*11*/
/*12*/ switch(sw){
/*13*/ case 1:
/*14*/ printf("どんどん先に進みましょう。\n");
/*15*/ break;
/*16*/ case 2:
/*17*/ printf("ゆっくりやれば大丈夫ですよ。\n");
/*18*/ printf("がんばってください。\n");
/*19*/ break;
/*20*/ case 3:
/*21*/ printf("一息入れて、復習してみては?\n");
/*22*/ break;
/*23*/ default:
/*24*/ printf("正しい番号を選んでください。\n");
/*25*/ }
/*26*/
/*27*/ return 0;
/*28*/ }
switch の後の「 ( ) 」内に変数「sw」が入っています。これがスイッチになります。そして、このスイッチの値によって switch 文以下の「case 値:」の実行文を実行します。つまり、分岐先はスイッチ用の変数の値と、「case 値:」の値が一致したところです。上の例では「sw」が「1」なら、「case 1:」以下の文を、「sw」が「2」なら、「case 2:」以下の文を実行します。ですから、「case 値:」の順番は1から順に並んでいなくても、その値が飛び飛びでもかまいません。そして、最後に「default:」という処理を書きます。これは、いずれの「case 値:」にもあたらなかった時に実行されます。「default:」以下は省略可能してもかまいません。上の例では、想定外の値(1,2,3以外)を入力された時の処理に使っています。「case 値:」の区切りが「;」ではないこと、case ごとの実行文が「 { } 」でくくられていないことに注意してください。なお、「~ :」の形のものを
この break 文がなぜ switch 文に必要かというと、swhitch 文は一致するラベルに処理を移すだけであるからです。つまり、この break 文が無いとそれ以下の「case 値:」もすべて実行されてしまうのです。例えば処理が「case 2:」に移ったとすれば「case 3:」も「default:」も実行されてしまうのです。そのために break 文を使って switch 文から抜け出す必要があるわけです。
生まれた年(西暦)を入力すると、その年の干支が出るようにしてください。ただし if 文を使わずに switch 文を使用してください。
参考1:
2000年はたつ年です。
参考2:
(十二支の順)ねずみ / うし / とら / うさぎ / たつ / へび / うま / ひつじ / さる / とり / いぬ / いのしし
#include <stdio.h>
main()
{
int year;
printf("今年は何年ですか? -> ");
scanf("%d", &year);
year = year % 12;
switch(year){
case 8:
printf("あなたは たつ 年生まれですね。\n");
break;
case 9:
printf("あなたは へび 年生まれですね。\n");
break;
case 10:
printf("あなたは うま 年生まれですね。\n");
break;
case 11:
printf("あなたは ひつじ 年生まれですね。\n");
break;
case 0:
printf("あなたは さる 年生まれですね。\n");
break;
case 1:
printf("あなたは とり 年生まれですね。\n");
break;
case 2:
printf("あなたは いぬ 年生まれですね。\n");
break;
case 3:
printf("あなたは いのしし 年生まれですね。\n");
break;
case 4:
printf("あなたは ねずみ 年生まれですね。\n");
break;
case 5:
printf("あなたは うし 年生まれですね。\n");
break;
case 6:
printf("あなたは とら 年生まれですね。\n");
break;
/* default のかわりに case 7: としてもかまいません。 */
default:
printf("あなたは うさぎ 年生まれですね。\n");
}
return 0;
}