switch文
switch文は、if文と同様、条件分岐のために使用されます。機能的には同じものです。switch文を使用して実現することができる機能は、if文を用いても実現することができます。つまり、if文を知っていれば、switch文を知らなくても条件分岐に関するプログラムは書けるということです。
では、なぜswitch文があるのでしょうか?それは、switch文を使用することで、次のような利点があるからです。
- プログラムの構造が分かりやすくなる
- 実行速度が速くなる
switch文を使用すると、プログラムの構造が分かりやすくなります。特に、判定する条件が多くなる場合に効果的です。反面、プログラム記述が長くなってしまうところがあります。実行速度は速くなりますが、それほど体感できるものではないと思います。
switch文の例
switch文を覚えていても損はありません。次は、ごくシンプルなswitch文の例です。
switch_example.php
1 <?php
2 /**
3 * switch文を利用した例
4 *
5 * 天候によってメッセージを変えます
6 */
7
8 // 変数に値を代入
9 $weather = 'fair';
10
11 switch ($weather) {
12 // 雨の場合
13 case 'rain':
14 echo '『雨だ』' . "\n";
15 echo '傘をさす' . "\n";
16 // 雪の場合
17 case 'snow':
18 echo '『雪だわ…』' . "\n";
19 echo '傘をさす' . "\n";
20 // 晴れの場合
21 case 'fair':
22 echo '『いい天気!』' . "\n";
23 echo '傘ささない' . "\n";
24 }
switch_example.phpの実行結果
『いい天気!』
傘ささない
switch文の形式
switch文の形式は次のようになります。
switch (式) {
case 条件:
文;
}
- 『switch』と記述します。
- 式を『(』と『)』で囲んで記述します。式とは何らかの値を持つものということです。多くの場合、変数を記述することになるでしょう。
- 『{』を記述します。
- caseと記述し、スペースをタイプしてから、判定する条件を記述します。最後に『:』を記述します。
- 条件にマッチした場合に実行したい文を記述します。
- 『}』を記述します。
注意すべき点は、caseの最後が『;』(セミコロン)ではなく、『:』(コロン)であるということです(これは、よく間違えます)。
switchに続く『式』に対して、判定したい条件を『case 条件:』で列挙していく訳です。
if文と比べると、『switch (式)』と『case 条件:』の部分で、if文の『if (式 == 条件)』に相当する部分を表現しているのが分かります。