二重のfor文

条件分岐や繰り返しは何重にもすることが出来ます。例えば、forを二重にするのなら「forの繰り返し」をさらに「forで繰り返す」というようにします。

書式

for (初期値; 繰り返しの条件; 変化1){

   繰り返し実行する処理

      for(初期値; 繰り返しの条件;変化2){

      繰り返し実行する処理

      }

}

 

<?php
print"<table>";
for($r =16; $r <=250; $r +=10){
    print"<tr>";
    for($g =16; $g <=250; $g +=10){
         $rh = dechex($r);
         $gh = dechex($g);
         print"<td bgcolor = #{$rh}{$gh}ff>色</td>";
     }
     print"</tr>";
}
print"</table>";
?>

実行結果

f:id:mkyosuke:20191127110219p:plain

 

繰り返しを「抜ける」「とばす」

繰り返し処理をしている最中に、処理を中断する方法が二つあります。

●break

forやforeach,while,do~whileなど繰り返し処理を行っているとき、breakの命令を実行すると処理を抜けることができます。例えば、次を実行すると1から10までの整数を書き出します。

<?php
for($i = 1;$i <=10; $i++){
print "$i"."<br>";

}
?>

ここに次のようにbreakを入れます。

<?php
for($i = 1;$i <=10; $i++){
print "$i"."<br>";
if($i == 5)break;

}
?>

すると、$iが5になったところで繰り返しを抜けて、全体の処理が終了します。

f:id:mkyosuke:20191127111659p:plain

 

・continue

繰り返し処理を終了することなく、指定した処理だけを「とばす」(スキップする)のがcontinueです。

例えば、次は1から10までの数値を、5だけ「とばして」書き出すPHPスクリプトです。

「if($i==5)continue」のところで、$iが5のときだけはcontinueで次の行の「print"$i"."<br>"」を実行しません。

 

<?php
for($i = 1;$i <=10; $i++){
if($i == 5)continue;
print"$i"."<br>";
}
?>

実行結果

f:id:mkyosuke:20191127112707p:plain