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> $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> $s</font><br>"; } } ?>
すると、2回層上の forまで抜けるので、赤字の数値も 3以上になったら終了します。