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


☆ 総目次へ ★ 第4章節へ ★ 前節へ ★ 次節へ ☆

☆ 
『Delphi入門』 4-4分岐処理(4)-case文- ☆
if
に応じて、プログラムの流れを2つに分岐させるものでした。

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

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

 
Delphiのように「1以上10未満」というような条件を入れることはできません。
変数の値の範囲が広い場合、switchを使い処理を行うのは、とても大変です。やはりその場合は、下記のように、ifif〜else ifを使ったほうがいいでしょう。下記の文は例です。

      
                                         Delophiとの相違点                                         
基礎課題4-9

【基礎課題4−6】を、switchif〜elseを使って作り直してください。
応用課題4-1

年齢を入力してからボタンを押すと、次の料金表にしたがって入場料金を表示するプログラムをif〜elseを利用し作ってください。

年齢 入場料金
6歳以上12歳以下 500円
13歳以上65歳以下 1000円
それ以外(5歳以下または66歳以上) 無料
☆ 『Delphi入門』 4-4分岐処理(4)-case文- ☆

☆ 総目次へ ★ 第4章節へ ★ 前節へ ★ 次節へ ☆



基礎課題4-10

【基礎課題4−7】を、if〜elseを使って作り直してください。
基礎課題4−9(switch文) 解答      基礎課題4−9(if〜else文) 解答
応用課題4−1(if文の例) 解答
基礎課題4−10 解答
チャレンジ問題

【基礎課題4−7】を、defaultを用いたswitchを使って作り直してみて下さい。
チャレンジ問題 解答
上記の【基礎課題4‐6】をswitchで作り直し直前のものを見てもわかるように、【基礎課題4‐7】のように得点(0〜100)までの範囲の条件を扱うものに、switchは適していません。しかし、それがどれくらい適していないかを下のチャレンジ問題で実感してみてください。
ちなみに、【応用課題4-1】の問題をdefaultをともなったswitch文で作成するとこのようになります。

応用課題4-1(Switch文) 解答