switch文は、同じ式を用いてIF文を並べたのに似ています。 同じ変数を異なる値と比較し、値に応じて異なったコードを実行したいと 思うことがしばしばあるかと思います
switch文は、まさにこのためにあるのです
switch文は、電気のスイッチのようなイメージです
switch文は、まさにこのためにあるのです
switch文は、電気のスイッチのようなイメージです
例えば、条件処理のif文でswitchの代わりに書くと下記のようなコーディングになります
$pref = ‘関東’;
if ($pref === ‘北海道’) {
//条件1
} elseif ($pref === ‘東北’) {
// 条件2
}
長いので以下省略します
$pref = ‘関東’;
if ($pref === ‘北海道’) {
//条件1
} elseif ($pref === ‘東北’) {
// 条件2
}
長いので以下省略します
間違いではないのですが、条件分岐をswitchでコーディングすると下記のようなコーディングになります
$pref= ‘北海道’;
switch ($pref ) {
case ‘北海道’:
echo ‘条件にマッチした時に処理を行います’;
break;
case ‘東北’:
echo ‘条件にマッチした時に処理を行います’;
break;
}
switch ($pref ) {
case ‘北海道’:
echo ‘条件にマッチした時に処理を行います’;
break;
case ‘東北’:
echo ‘条件にマッチした時に処理を行います’;
break;
}
switch文は条件分岐を一つのグループに纏めれるので if文より可視性が向上します
PHPのswitch文を使用する際には、以下の点に注意する必要があります
- break文の記述
switch文では、各case文の処理が終わった後に必ずbreak文を記述する必要があります。
break文がない場合、次のcase文の処理も行われてしまいます。
それにより、予期しない結果を生じることがあります。 - 判定する変数の型
switch文では、判定する変数の型が異なる場合、予期しない結果を生じることがあります。
例えば、変数が文字列型である場合は、case文の値も文字列型である必要があります。
数値型である場合は、数値型である値を使用する必要があります。 - 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言語に対応。プログラミング学習にも。