PHP その他の制御文 【初級編 第34回】
その他の制御文
前回は foreach文について記載しました。
今回は その他の制御文について記述します。
ネストの記述方法
例えば条件分岐の中で、この条件の場合はさらに条件判定させたい場合があります。
その場合は、if文の中に if文をさらに入れ子にして階層構造にします。
入れ子にした階層構造にすることをネスト構造と呼びます。
ネストの記述例
例えば for文の中でさらに条件分岐をさせたい場合は、以下のように記述します。
ネストのサンプル
1 2 3 4 5 6 7 8 9 | <?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回で終了します。
1 2 3 4 5 6 7 8 | <?php for ( $i = 1; $i <= 10; $i ++){ echo "値は $i です。<br>" ; if ( $i >= 5){ break ; } } ?> |
結果は以下のようになります。
ただし break文では1回層上の for文しか抜けないので、
下記のように 2回 for文でネストをしている場合は、1回層しか抜けません。
1 2 3 4 5 6 7 8 9 10 11 | <?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文を記述します。
1 2 3 4 5 6 7 8 9 10 11 | <?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以上になったら終了します。