Tips

2012.12.10

PHP その他の制御文 【初級編 第34回】

PHP その他の制御文 【初級編 第34回】

その他の制御文

前回は foreach文について記載しました。
今回は その他の制御文について記述します。

ネストの記述方法

例えば条件分岐の中で、この条件の場合はさらに条件判定させたい場合があります。
その場合は、if文の中に if文をさらに入れ子にして階層構造にします。
入れ子にした階層構造にすることをネスト構造と呼びます。

ネストの記述例

例えば for文の中でさらに条件分岐をさせたい場合は、以下のように記述します。

ネストのサンプル

<?php
  for($i = 1; $i <= 10; $i++){
    if($i > 5){
      echo "<font color=blue>値は 6 以上で $i です。</font><br>";
    } else {
      echo "<font color=red>値は 5 以下で $i です。</font><br>";
    }
  }
?>

この場合は結果は以下のようになります。

break文について

break文を使用すると、特定の条件を満たした場合にループを抜けたりさせることができます。

break文のサンプル

break文は以下のように記述します。
この場合、if文を抜けてさらに上のfor文を強制終了させます。
そのため本来は 10回ループするはずだった処理が 5回で終了します。

<?php
  for($i = 1; $i <= 10; $i++){
    echo "値は $i です。<br>";
    if($i >= 5){
      break;
    }
  }
?>

結果は以下のようになります。

ただし break文では1回層上の for文しか抜けないので、
下記のように 2回 for文でネストをしている場合は、1回層しか抜けません。

<?php
  for($i = 1; $i <= 6; $i++){
    echo "<font color=red> $i: </font><br>";
    for($s = 1; $s <= 3; $s++){
      if($i > 3){
        break;
      }
      echo "<font color=blue>&nbsp;$s</font><br>";
    }
  }
?>

表示結果は以下のようになります。

これを2回層上の forまで抜けるようにするには以下のように break文を記述します。

<?php
  for($i = 1; $i <= 6; $i++){
    echo "<font color=red> $i: </font><br>";
    for($s = 1; $s <= 3; $s++){
      if($i > 3){
        break 2;
      }
      echo "<font color=blue>&nbsp;$s</font><br>";
    }
  }
?>

すると、2回層上の forまで抜けるので、赤字の数値も 3以上になったら終了します。

新連載はじまりました!新PHP基礎 連載リンク

PHP基礎 連載

Recent News

Recent Tips

Tag Search