「switch文」の編集履歴(バックアップ)一覧に戻る

switch文 - (2014/05/02 (金) 02:06:49) のソース

前回のページでは if文による分岐を説明しました。
今回は、 switch文について説明します。
**switch文
switch文も、if文と同じ分岐の命令です。
同じ分岐といっても書き方が if文とはだいぶ異なります。
if文との違いを使いながら確認していきましょう。
 int num = 0;
 
 printf("数値を入力してください。\n");
 
 scanf("%d",&num);
 
 switch(num)
 {
 case 0: //numが0だったとき
 		
 	printf("0です。\n");
 	break;
 
 case 1: //numが1だったとき
 		
 	printf("1です。\n");
 	break;
 
 case 2: //numが2だったとき
 		
 	printf("2です。\n");
 	break;
 
 case 3: //numが2だったとき
 
 	printf("3です。\n");
 	break;
 
 default: //どのケースにも当てはまらないとき
 
 	printf("0から3ではありません。\n");
 	break;
 }
switch文は switch と書いた次の ( ) の中に分岐のための数値を入れます。 
※この ( ) に入れることができるのは整数だけです。
{ } の中に分岐の条件と分岐したときの処理を書きます。
case と書いて次に整数を書きさらに : を書きます。
その次に処理を書き、処理の部分が書き終わったら break と書きます。
default はどのケースにも当てはまらない数値のときに実行されます。
break を書かないとその下にある処理を次々に実行してしまうので気を付けましょう。
下のプログラムは break case 1: の break を消したものです。
 int num = 0;
 
 printf("数値を入力してください。\n");
 
 scanf("%d",&num);
 
 switch(num)
 {
 case 0: //numが0だったとき
 	
 	printf("0です。\n");
 	break;
 
 case 1: //numが1だったとき
 		
 	printf("1です。\n");
 
 case 2: //numが2だったとき
 		
 	printf("2です。\n");
 	break;
 
 case 3: //numが2だったとき
 
 	printf("3です。\n");
 	break;
 
 default: //どのケースにも当てはまらないとき
 
 	printf("0から3ではありません。\n");
 	break;
 }
このプログラムの場合実行すると1を入力すると 「2です」 という表示も一緒に出てしまいます。
default の部分は無くても問題ありません。 必要なときは書くようにしましょう。
 int num = 0;
 
 printf("欲しいものを数値で入力してください\n1:おにぎり\t2:おむすび\t3:ライスボール\n");
 
 scanf("%d",&num);
 
 switch(num)
 {
 case 1:
 	printf("500円です\n");
 	break;
 case 2:
 	printf("千円です\n");
 	break;
 case 3:
 	printf("1万円です\n");
 	break;
 }
 
 printf("ありがとうございました。\n");
答えが整数なら ( ) の中に式を入れることもできます。
 int num = 0;
 
 printf("数値を入力してください\n");
 
 scanf("%d",&num);
 
 switch(num%3)
 {
 case 0:
 	printf("3の倍数です。\n");
 	break;
 case 1:
 	printf("3の倍数プラス1です\n");
 	break;
 case 2:
 	printf("3の倍数プラス2です\n");
 	break;
 }
必要のないケースは飛ばしても構いません。
 int num = 0;
 
 printf("数値を入力してください。\n");
 
 scanf("%d",&num);
 
 switch(num%6)
 {
 case 0:
 	printf("6の倍数です。\n");
 	break;
 case 3:
 	printf("3の倍数です。\n");
 	break;
 }
switch文は多方向分岐と言われています。
if文は条件が成立しているかしていないかですが、switch文はいくつかのケースの中からあっているものを選択します。
選択肢が3つ以上になる場合は、switch文を使うことをおすすめします。
**練習問題
次のようなプログラムを作ってください。
第1問
ユーザーに好きなアイスの味を聞き、数値で入力してもらう
「1:バニラ」「2:チョコ」「3:いちご」「それ以外の数値:その他」
それぞれ値段を表示する。
※アイスの味は増やしてもいい。 「4:バナナ」など。
目安箱バナー