| 『楽しく!』『できる!!』C講座のページ |
第5回:もうちょっと賢そうな(?)ソースにしよう!
・条件分岐 その2
さて、前回は
条件分岐(if文)
をつかって簡単なゲームを作ってみました。
今回は前回の最後にも述べたように前回のソースの改良です。
・条件分岐 その2
条件分岐とは、その名のとおり、「〜 ならば …」というように条件によって分岐するもので、前回紹介したのは
『if文』
と呼ばれる構文でした。
しかし、前回のソースでは「入力されたのは○○? そうでなければ△△? それじゃ□□?」というように else if の続くソースでした。
これではまるで頭の悪い子供のようです。
今回はこれをもっとスマートな形にしたいと思います。
・ switch 文
今回使うのは
『switch文(スイッチぶん)』
と呼ばれる構文です。
書式は
|
switch(a){ case 条件 1: 実行文1; break; case 条件 2: 実行文2; 実行文3; break; : : default: 実行文n; break; } |
|
/* 入力された値 c が 1 又は 2 であればその値であることを示し、q なら終了 それ以外の値が選択されていればエラー */ switch(c){ case 1 : printf("入力された値は1です。\n"); break; case 2 : printf("入力された値は2です。\n"); break; case q : printf("終了が選択されました。\n"); printf("プログラムを終了します\n"); break; default: printf("エラー!予期せぬ値が選択されました。\n"); printf("プログラムを終了します。\n"); break; } |
|
/* cの取りうる値は、1,2,3,q とする。 また、c が1,2,3のときは数字であることを。qのときはプログラムを終了する*/ switch(c){ case 1 : case 2 : case 3 : printf("選択された値は数字です。\n"); break; case q : printf("プログラムを終了します。\n"); break; default: printf("エラー!予期せぬ値が選択されました。\n"); printf("プログラムを終了します。\n"); break; } |
|
/*Zjanken_S */ #include <stdio.h> void main(void) { char selected; /* プレイヤーが選択したものを入れておく */ printf("************************************** \n"); printf("* じゃんけんゲーム * \n"); printf("************************************** \n"); printf("\n"); printf("#### 説明 #######\n"); printf("# g : グー #\n"); printf("# t : チョキ #\n"); printf("# p : パー #\n"); printf("#################\n"); printf("\n"); printf("\n"); printf("ジャンケンしよう!\n"); printf("ジャンケン……\n"); scanf("%c",&selected); /* プレイヤーが選択したキャラを selected に格納 */ printf("ほいっ!!\n"); switch(selected){ case 'g': printf("++++++++++++++\n"); printf(" あなた:グー\n"); printf(" わたし:パー \n"); printf("++++++++++++++\n"); printf("\n"); printf("# わたしの勝ち!! #\n"); printf("\n"); break; case 't': printf("++++++++++++++\n"); printf(" あなた:チョキ\n"); printf(" わたし:グー \n"); printf("++++++++++++++\n"); printf("\n"); printf("# わたしの勝ち!! #\n"); printf("\n"); break; case 'p': printf("++++++++++++++\n"); printf(" あなた:パー \n"); printf(" わたし:チョキ\n"); printf("++++++++++++++\n"); printf("\n"); printf("# わたしの勝ち!! #\n"); printf("\n"); break; default: printf("エラー!! g,t,p の中から選択してください!!\n"); break; } } |