カテゴリー
C++

switch文を知ろう

この章ではswitch文について説明します。
if文と同じく条件分岐できるのがswitch文です。11 11switchのカッコ()の中の式が、caseの値と一致するとbreakまでの文が実行されます。11
breakはブロックを抜けるために存在します。
ブロックとはif文でも出てきましたが、1の部分です。
switch文の場合はbreakでswitchのブロックを抜けることが出来ます。
ではswitch文の例を見てみましょう。111111 111先ほどのswitch文と同じことをif文で表すと以下のようになります。11 次は仮にbreak文を記述しなければどうなるか説明します。11 通常はcaseの値に一致した場合、それ以降の処理をbreakの箇所まで実行していきますが、 caseの値に一致したのに関わらずbreakがないと次のbreakまで 、もしくはbreakがどこにもなければdefaultまで処理が実行されます。
仮に上の例で入力したaの値が0だとすると、0は1の値と一致するので1を実行して処理が終わるはずのところ、breakが無いがために、そこで止まらず抜けて行ってしまいます。
さらに1にも1にもbreakが無いのでそこの処理も実行されて、最後のdefaultまで実行されてしまいます。
つまりaの値が0の場合、以下のすべてが実行されることになります。1
次の例を見てみましょう。1111 今まで、breakまでのcase文は1つだけでしたが、上の例のようにcase文はまとめて複数設置することが出来ます。
switchの式がbreakまでの複数のcaseの中でどれか1つのcaseの値と合致した場合はそこの処理文を実行してbreakで抜けます。11