C++セミナー(初級)条件分岐処理(switch)

HOME->講習会->プログラミングセミナー->C++セミナー(初級)


C++には,if文以外にもswitch文と呼ばれる条件分岐処理があります.

目次

switch文
switch文を用いた例
演習

switch文

switch文の文法は以下のようになっています.

switch(変数){
case 値1:
    変数 == 値1 のときに実行される処理;
    break;
    
case 値2:
case 値3:
    変数 == 値2 もしくは 変数 == 値3のときに実行される処理
    break;
    
default:
    変数がどのcaseにも合致しなかった場合に実行される処理
    break;
}

caseの後ろに「:」をつけ忘れないように注意しましょう.また,各caseで行われるプログラムのあとの「break;」を記述を忘れると,それより下に記述されているされているプログラムについても処理されてしまうので注意です.なお,caseについてはいくつも設定することが可能で,defaultについては省略も可能です.

switch文はif文と異なり,変数の値がcaseと一致するかで処理が実行されるため,範囲を持った条件分岐処理(例えば,\(0\leq x\leq 10\)のような条件式)を行うことはできません.switch文は多くの条件分岐がある場合や,シーケンス制御(順序制御)を行いたい場合に使われる場合によく使われます.

switch文を用いた例

例えば,じゃんけんゲームの一部を考えてみます.自分が出した手に対して絶対に負けるプログラムを作成してみます.

#include <iostream>
int main()
{
    int input;
    std::cout << "0:グー  1:チョキ  2:パー" << std::endl;
    std::cout << "数字を入力してください";
    std:: cin >> input;
    switch(input){
    case 0:
        std::cout << "チョキ" << std::endl;
        break;
    case 1:
        std::cout << "パー" << std::endl;
        break;
    case 2:
        std::cout << "グー" << std::endl;
        break;
    default:
        std::cout << "エラー" << std::endl;
        break;
    }
}

暇なときにやると優越感に浸れるかもしれません(笑).このように,与えられた変数が設定した値と一致するような分岐が多いときに使われます.

演習

1.電気の基本料金は契約しているアンペア数によって決まっています.インターネット等で自身が契約してる電気会社の基本料金一覧を調べ,アンペア数を入力すると基本料金を表示するプログラムを作成してください.