4−4 分岐処理(4)
-
switch文-


if
  • 条件が成り立つ( if
  • 条件が成り立たない( else
に応じて、プログラムの流れを2つに分岐させるものでした。

 switch文はAのときはaの処理、Bのときはbの処理、Cのときはcの処理・・・のように処理の分岐が多い条件判断構造を作成します。
 if〜else ifと同じような条件判断構造を作成しますが、判断する値の数が多いときにはswitchで見やすいコードを書くことができます。
また、caseに指定できる値は1つだけです。ifと違って、範囲を指定することはできません。

 switchでは、「()」の中に指定した整数を、「
case」の次に指定した値と比較していき、一致するものがあれば、
そこで処理を行います。
 どのcaseにも当てはまらないときは、「
default」に書かれた処理を行うことになります。

 switchのまとまりを{}で囲みます。swicthの後ろにはセミコロン(;)は記述しませんが、
caseの後ろにはコロン(:)が必要です。
 
 switchの「()」の中には、整数の変数か、整数を戻り値とする関数の呼び出ししか書くことはできません。文字列などはswitch文では判断できません。
 
 
caseの値の部分には「」などの、整数、整数の定数、
あるいは、文字定数を指定する場合は、「'a'」のように、
その文字をシングルクォテーションで囲んで指定します。
 
 処理部分は何行書いてもいいですが、switchを抜けることを表すcaseの終わりには、breakステートメントを記述します。
breakステートメントを省略すると、以降に記述したコードが実行されてしまいます。
【基礎課題4−6】は、switchを使うと次のように書きます。

 
変数の値の範囲が広い場合、switchを使い処理を行うのは、とても大変です。
やはりその場合は、下記のように、ifif〜else ifを使ったほうがいいでしょう。下記の文は例です。

      


チャレンジ問題
【基礎課題4−6】を、defaultを用いたswitchを使って作り直してみて下さい。
チャレンジ問題の解答