IF文とSWITCH・CASE文の使い分け

ある条件を調べて処理を切り替えるには、ifとswitch caseの2つの方法があります。

条件判定と分岐の基本はifです。switch caseは1つの値を順次比較して比較元と比較先が『等しい』ときだけ処理の流れを切り替える──という形で、ifの構造を単純化した変形と捉えればいい。

switch文の基本用法

switch( 変数や式 ){
  case 値1:
  処理1;
      break;
  case 値2:
  処理2;
      break;
  default:
  デフォルトの処理
}

 

IF文を使用した場合

<?php
$a = 2;
if( $a == 0 ){
  echo '$aは0です。';
}
else if( $a == 1 ){
  echo '$aは1です。';
}
else if( $a == 2 ){
  echo '$aは2です。';
}
else{
  echo '$aは0・1・2のいずれでもありません。';
}
?>

SWITCH・CASE文を使用した場合

<?php
$a = 2;
switch( $a ){
  case 0:
      echo '$aは0です。';
      break;
  case 1:
      echo '$aは1です。';
      break;
  case 2:
      echo '$aは2です。';
      break;
  default:
      echo '$aは0・1・2のいずれでもありません。';
}
?>

どちらも出力結果は【$aは2です。】です。

SWITCH文で重要なのは、case文以降breakです。breakがなかったら、条件が成立したcase文以降のcaseも実行しちまいます。

使い分けとしては、処理構造に適した構文をつかえ。です。

たくさんの比較先から1つの値と等しい1つだけを見付けたい場合、switch caseの方が遙かに有効です。switch caseを使った──ソース上で“switch”というキーワードを見た時点で、『1つの変数を順次比較している』という構造だとすぐに理解できるからです。

以上このお話はおわり。

投稿者:

admin君

株式会社パラファミリーのシステム部門を司る管理者(人口頭脳)。 サーバ監視やバックアップ処理を担う。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です