#include <iostream> using std::cout; using std::cin; using std::endl; int main() { int command; cout << "す○いむがあらわれた!" << endl; cout << "どうする? コマンド(1~4):" << endl; cout << "1:たたかう" << endl; cout << "2:まほう" << endl; cout << "3:まもる" << endl; cout << "4:にげる" << endl; cin >> command; if(command == 1) cout << "あちょー" << endl; else if(command == 2) cout << "ぱるぷんて" << endl; else if(command == 3) cout << "ひきこもります。かまわないで" << endl; else if(command ==4) cout << "とっつあん、あばよ!" << endl; else cout << "error" << endl; }
#include <iostream> using std::cout; using std::cin; using std::endl; int main() { int com; //コマンド cout << "0~4の整数を入力:"; cin >> com; //switch(整数の変数) 整数でしか判断できません! //caseブロック switch(com) { case 0: //if(com == 0) cout << "私の"; cout << "母の"; case 1://case ラベル 数字のことをラベルって言う cout << "なまえは"; break; case 2: cout << "やまだ"; case 3: cout << "太郎"; case 4: cout << "でござる"; break;//ここでcaseブックを抜ける default: //ラベルに記述された数字以外 cout << "error" << endl; break;//ここでcaseブロックを抜ける } }
上の、ド〇クエ風メニュー選択を、switch-case文で書いてみよう!
#include <iostream> using std::cout; using std::cin; using std::endl; //サブルーチン(手続きとか、関数とか) //C++ではどちらも関数として表現する //メニュー表示の関数を作ってみるよ! //戻り値の型 関数名(パラメータリスト){ 処理内容ブロック; } //ちなみに関数に渡すパラメータのことを引数というよ(いんすうじゃないよ、ひきすうだよ!) //voidは何も返さないよ=手続きタイプの関数(サブルーチン)だよ void printMenu() { cout << "+--------------+" << endl; cout << "| す○いむがあらわれた! |" << endl; cout << "|どうする? |" << endl; cout << "|コマンド(1~4): |" << endl; cout << "|+------+ |" << endl; cout << "+|1:たたかう |------+" << endl; cout << " |2:まほう |" << endl; cout << " |3:まもる |" << endl; cout << " |4:にげる |" << endl; cout << " +------+" << endl; } //関数の宣言と定義!ここまで int main() { int command; printMenu(); //メニューはほかで定義済みの処理を呼ぶ cin >> command; /* if(command == 1) cout << "あちょー" << endl; else if(command == 2) cout << "ぱるぷんて" << endl; else if(command == 3) cout << "ひきこもります。かまわないで" << endl; else if(command ==4) cout << "とっつあん、あばよ!" << endl; else cout << "error" << endl; */ switch(command) { case 1: cout << "あちょー" << endl; break;//breakの付け忘れに注意! case 2: cout << "ぱるぷんて" << endl; break; case 3: cout << "ひきこもります。かまわないで" << endl; break; case 4: cout << "とっつあん、あばよ!" << endl; break; default: cout << "error" << endl; } }
1~12の整数を入力して、入力された月が何日あるか表示しよう
2月は28日固定!
それ以外はエラー
#include <iostream> using std::cin; using std::cout; using std::endl; // 1月 31 // 2月 28 // 3月 31 // 4月 30 // 5月 31 // 6月 30 // 7月 31 // 8月 31 // 9月 30 //10月 31 //11月 30 //12月 31 int main() { //練習問題① int month; cout << "1~12の数字を入れてください:"; cin >> month; switch(month) { case 1: cout << month << "月は" << 31 << "日あります" << endl; break; case 2: cout << month << "月は" << 28 << "日あります" << endl; break; case 3: cout << month << "月は" << 31 << "日あります" << endl; break; case 4: cout << month << "月は" << 30 << "日あります" << endl; break; case 5: cout << month << "月は" << 31 << "日あります" << endl; break; case 6: cout << month << "月は" << 30 << "日あります" << endl; break; case 7: cout << month << "月は" << 31 << "日あります" << endl; break; case 8: cout << month << "月は" << 31 << "日あります" << endl; break; case 9: cout << month << "月は" << 30 << "日あります" << endl; break; case 10: cout << month << "月は" << 31 << "日あります" << endl; break; case 11: cout << month << "月は" << 30 << "日あります" << endl; break; case 12: cout << month << "月は" << 31 << "日あります" << endl; break; default: cout << "error" << endl; }
switch-case文のブレイクしないとしたまで突っ切る性質を使って、少し上の練習問題をすっきりと書くことができます。
int month; cout << "1~12の数字を入れてください:"; cin >> month; switch(month) { case 1://下にスルー case 3://下にスルー case 5://フォールスルー case 7: case 8: case 10: case 12: cout << month << "月は" << 31 << "日あります" << endl; break; case 2: cout << month << "月は" << 28 << "日あります" << endl; break; case 4: case 6: case 9: case 11: cout << month << "月は" << 30 << "日あります" << endl; break; default: cout << "error" << endl; }
コーヒー100円、コーラ120円、紅茶105円、野菜ジュース130円とします。
コーヒー→1、コーラ→2、紅茶→3、野菜ジュース→4として、それぞれの
数値が入力されたら種類と値段を表示するプログラムを書いてみよう。
それ以外はエラー!
//練習問題② int kind;//飲み物の種類 cout << "番号を入力(1~4):"; cin >> kind; switch(kind) { case 1: cout << "コーヒー:100円" << endl; break; case 2: cout << "コーラ:120円" << endl; break; case 3: cout << "紅茶:105円" << endl; break; case 4: cout << "野菜ジュース:130円" << endl; break; defult: cout << "error" << endl; } }