switch文

switch文は、同じ式を用いてIF文を並べたのに似ています。 同じ変数を異なる値と比較し、値に応じて異なったコードを実行したいと 思うことがしばしばあるかと思います
switch文は、まさにこのためにあるのです
switch文は、電気のスイッチのようなイメージです

例えば、条件処理のif文でswitchの代わりに書くと下記のようなコーディングになります
$pref = ‘関東’;
if ($pref === ‘北海道’) {
//条件1
} elseif ($pref === ‘東北’) {
// 条件2
}
長いので以下省略します

間違いではないのですが、条件分岐をswitchでコーディングすると下記のようなコーディングになります

$pref= ‘北海道’;
switch ($pref ) {
case ‘北海道’:
echo ‘条件にマッチした時に処理を行います’;
break;
case ‘東北’:
echo ‘条件にマッチした時に処理を行います’;
break;
}

switch文は条件分岐を一つのグループに纏めれるので if文より可視性が向上します

PHPのswitch文を使用する際には、以下の点に注意する必要があります

  1. break文の記述
    switch文では、各case文の処理が終わった後に必ずbreak文を記述する必要があります。
    break文がない場合、次のcase文の処理も行われてしまいます。
    それにより、予期しない結果を生じることがあります。
  2. 判定する変数の型
    switch文では、判定する変数の型が異なる場合、予期しない結果を生じることがあります。
    例えば、変数が文字列型である場合は、case文の値も文字列型である必要があります。
    数値型である場合は、数値型である値を使用する必要があります。
  3. default文の記述
    switch文では、条件に一致するcase文が存在しない場合に実行されるdefault文を記述することができます。
    default文は必須ではありませんが、予期しない結果を回避するためには、記述することを推奨します。

以上が、switch文を使用する際に注意するべき点となります

switch文 サンプルプログラムで確認してみましょう

<?php
$pref = '関東';
switch ($pref) {
    case '北海道':
        echo '北海道';
        break;
    case '東北':
        echo '東北';
        break;
    case '関東':
        echo '関東';
        break;
    case '中部':
        echo '中部';
        break;
    case '近畿':
        echo '近畿';
        break;
    case '中国':
        echo '中国';
        break; 
    case '四国':
        echo '四国';
        break;
    case '九州':
        echo '九州';
    break;
    default:
        echo 'どちらにもあてはまりません';
        break;
}
?>
<?php
// 曜日判定
$dayOfWeek = "Monday";

switch ($dayOfWeek) {
  case "Monday":
    echo "今日は月曜日です";
    break;
  case "Tuesday":
    echo "今日は火曜日です";
    break;
  case "Wednesday":
    echo "今日は水曜日です";
      break;
  case "Thursday":
    echo "今日は木曜日です";
    break;
  case "Friday":
    echo "今日は金曜日です";
    break;
  case "Saturday":
    echo "今日は土曜日です";
    break;
  case "Sunday":
    echo "今日は日曜日です";
    break;
  default:
    echo "無効な曜日です";
    break;
}
?>
<?php

$fruit = "apple";

// 複数の処理を一纏めに纏める事ができます
switch ($fruit) {
  case "apple":
  case "orange":
  case "banana":
    echo "この果物は好きです";
    break;
  case "durian":
    echo "この果物は苦手です";
    break;
  default:
    echo "果物ではありません";
    break;
}
?>

上記のコードをコピペして下記のサイトで実際にPHPコードを実行してみましょう
本サイトでは、基礎的な学習は開発環境を構築しないで、webで実行します。
コピペで動作したら、今度は自分で実際にコードをトレースしてコーディングしてみましょう
効率的にプログラムを学習するなら必ず、手打ちすることです。
打つことで、アウトプットして覚えていきます。

ブラウザでプログラミング・実行ができる「オンライン実行環境」| paiza.IO
paiza.IOはオンラインですぐにプログラミングが始められる、オンライン実行環境です。Java,Ruby,Python,PHP,Perlなど主要24言語に対応。プログラミング学習にも。
タイトルとURLをコピーしました