条件分岐 switch文

switch文はある変数について、その値によって動作を変えることができます。

if 文と同様に、 switch文は状況に応じて異なった結果になるプログラムを作成するために使用します。 switch文の場合は、評価する変数が、 この値ならこの処理、あの値ならあの処理、 というふうに記述します。 条件判断を行う変数が決まっている場合は、 switch文の方が利用しやすいでしょう。

switch文

switch文は、ある変数について条件判断を行います。 変数の値によってその後の動作を変えることができます。 働きは if 文と似ていますが、 switch文は(条件判断のために)調べる値が決まっている、というのが特徴です。 「case 数」の後ろは「:(コロン)」なので、注意しましょう。

  switch (変数) {
     case 値1: 変数の条件の設定
       文1;変数=値1の場合の動作
       break; 処理を終了
     case 値2: 変数の条件の設定
       文2;変数=値2の場合の動作
       break; 処理を終了
  }

例えば、下のように使うことができます。 この例では、「生まれた月」を変数として、対応する誕生石を表示します。

  switch ($month) {
     case 1 :
       print "$month 月の誕生石は" ;
       print "ガーネットです。" ;
       break;
     case 2 :
       print "$month 月の誕生石は" ;
       print "アメシストです。" ;
       break;
     case 3 :
       print "$month 月の誕生石は" ;
       print "アクアマリン、サンゴです。" ;
       break;
     case 4 :
       print "$month 月の誕生石は" ;
       print "ダイアモンドです。" ;
       break;
     case 5 :
       print "$month 月の誕生石は" ;
       print "エメラルド、ヒスイです。" ;
       break;
     case 6 :
       print "$month 月の誕生石は" ;
       print "パール、ムーンストーン、アレキサンドライトです。" ;
       break;
     case 7 :
       print "$month 月の誕生石は" ;
       print "ルビーです。" ;
       break;
     case 8 :
       print "$month 月の誕生石は" ;
       print "ペリドットです。" ;
       break;
     case 9 :
       print "$month 月の誕生石は" ;
       print "サファイアです。" ;
       break;
     case 10 :
       print "$month 月の誕生石は" ;
       print "オパール、トルマリンです。" ;
       break;
     case 11 :
       print "$month 月の誕生石は" ;
       print "トパーズです。" ;
       break;
     case 12 :
       print "$month 月の誕生石は" ;
       print "トルコ石、ラピスラズリです。" ;
       break;
  }

break とは

上の例を見てもらうとわかりますが、break という命令がありますね。 break は、そこで処理を終了する、という命令です。 もし、break を書かなかったら、case の処理の後、 次の case の処理を行ってしまいます。 break と書いておくと、 break まで来たらswitch{ } の部分の処理を終了して、 次のブロック(処理のまとまりのことです)に進みます。

なお、最後の case の後(上の例では12月)は、 break を省略しても同じ動作をしますが、 書いておくようにしましょう。 書いておかないと、後で条件を追加する場合に記述もれをするかもしれません。

default の処理 - どれにも当てはまらなかった場合 -

case の条件をいずれも満たさない場合は、 default にしていされている処理を行います。 defaultswitch ブロックの一番最後に記述します。

  switch ($month) {
     case 1 :
       print "$month 月の誕生石は" ;
       print "ガーネットです。" ;
       break;

     (中略)

     case 12 :
       print "$month 月の誕生石は" ;
       print "トルコ石、ラピスラズリです。" ;
       break;
     default:
       print "誕生月が正しく入力されていません。" ;
  }
Copyright (C) 2003-2013. PHP で WEB 作成 All rights reserved.