switch文を用いた条件分岐[PHP]

アイキャッチ PHP

PHPの条件分岐については、以前書きました。

しかし、条件分岐はif文だけではありません。

今回はもう一つの条件分岐である「switch文」について解説しましょう。参考になれば幸いです。

switch文の書き方

switch文は以下のように記述します。

switch (式){
case 値1:
  式が値1と等しい時の処理;
  break;
case 値2:
  式が値2と等しい時の処理;
  break;
case 値3:
  式が値3と等しい時の処理;
  break;
default:
  式がいずれの値にも等しくないときの処理;
}

式がcaseの値と等しいかどうか、上から順に見ていきます。等しければ処理を実行し、break(脱出)します。いずれの値にも等しくないときは、defaultの処理が実行されます。

例として、順位によって異なる文字列を出力するコードを書いてみましょう。

例1
<?php
$place = rand(1, 8);
switch($place) {
case 1:
  echo "金メダルです。";
  break;
case 2:
  echo "銀メダルです。";
  break;
case 3:
  echo "銅メダルです。";
  break;
default:
  echo "入賞です。";
}
?>

例1では、変数$placeの値によって4つの処理が用意されています。1なら「金メダルです。」と出力されます。2なら「銀メダルです。」3なら「銅メダルです。」いずれでもなければ「入賞です。」と表示されます。

break文

if文では、条件に応じた処理をブロック(中括弧の中)に記述しました。そのため条件式に合致した場合、どこまで処理を実行するか迷うことはありません。ブロック内の処理を行って、条件分岐を終了するだけです。

一方、switch文ではcaseごとにブロックで区切られているわけではありません。そこで「ここまで実行したらswitch文を抜ける」ことを表す「break」を記述します。

あえて「break」を記述しないこともあるものの、他の人が見た際「意図してbreak文を書いていないのかどうか」の判断が難しいので、基本的には記述するようにしましょう。

if文との使い分け

switch文とif文は、どちらも条件分岐を定義します。どのように使い分けたら良いのでしょう。

switch文は条件が複数ある場合に向いています。一方で条件が1つなら、シンプルなif elseで記述した方がわかりやすいでしょう。elseifを複数使う必要がある場合は、switch文で置き換えられないか検討する余地があります。

まとめ

  • caseごとに処理を記述
  • 条件に当てはまらない場合はdefault
  • breakを忘れずに

switch文の基本的な使い方は以上です。

あなたの毎日がハッピーでありますように。

コメント

  1. […] switch文を用いた条件分岐[PHP]PHPの条件分岐については、以前書きました。しかし、条件分岐はif文だけではありません。今回はもう一つの条件分岐である「switch文」について解説しましょ […]

タイトルとURLをコピーしました