switch case文での条件分岐

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

C++のswitch case文は、PHPと全く同じですので、PHPが分かる人は飛ばしてOKです。
基本の形式は以下の通りです。

スポンサーリンク

switch (式)
	case 定数1:
		処理1
		・・・
		break;
	case 定数2:
		処理2
		・・・
		break;
	default:
		処理3
		・・・
		break;

出だしの「switch (式)」の式を評価して、その結果と一致するcase文が選択され、処理が実行されます。
caseの処理文の後には、通常breakを付けますので、一致するものが見つかった場合は、残りのcase文の処理は行われません。
また、caseの定数に一致するものが見つからない場合は、default文の処理が行われます。

break文がない場合は、そこでswitch文の処理がストップすることなく、次のcase文へと進みます。
これをフォールスルーと呼びますが、意図的に狙って書くことは、あまり少ないように思います。

#include <iostream>
 
int result;        // 計算結果
char oper_char;    // ユーザー指定演算子
int value;        // 入力の数字
 
int main() {
    // 計算結果の初期化
    result = 0;
    // 無限ループ
    while (true) {
        std::cout << "Result: " << result << "\n";
        std::cout << "Enter operator and number: ";
        std::cin >> oper_char >> value;
        // 中止
        if ((oper_char == 'q') || (oper_char =='Q'))
            break;
        // 条件分岐
        switch (oper_char) {
            case '+':
                result += value;
                break;
            case '-':
                result -= value;
                break;
            case '*':
                result *= value;
                break;
            case '/':
                if (value ==0)
                    std::cout << "Error\n";
                else
                    result /= value;
                break;
            default:
                std::cout << "Unknown operator " << oper_char << "\n";
                break;
        }
    }
    return(0);
}

上記コードは、四則演算を行う電卓のプログラムです。
switch (oper_char)で、入力された演算子(+,-,*,/)で、caseに演算子を指定して、条件分岐をさせています。
default文では、+,-,*,/以外の演算子が入力された場合に、エラーメッセージを表示するようにしています。

コマンドプロンプトから、演算子(+,-,*,/)と数字を入力することで、四則演算を行えます。
実行結果。

Result: 0
Enter operator and number: +3
Result: 3
Enter operator and number: *5
Result: 15
Enter operator and number: *6
Result: 90
Enter operator and number: -25
Result: 65
Enter operator and number: /5
Result: 13
Enter operator and number: q

このように、正確な計算を行える電卓を作ることができます。

スポンサーリンク
 
スポンサーリンク