while文で繰り返し処理

whileもforと同じく繰り返し処理を記述しますが、forよりも繰り返しの条件を柔軟に記述することができます。

for文は、カウンタ変数の値の変化でしか条件を記述できませんが、while文では

例えば、「変数aに値が代入されていたら」とか「変数aの文字列に「b」が含まれていたら」といったことも条件にすることができます。

 

書式 whileの構文1

while(繰り返しを行う条件){

    繰り返しの処理

}

書式 whileの構文2

while(繰り返しを行う条件):

   繰り返しの処理

endwhile;

「繰り返しを行う条件」が正しい(TRUEの間)は、「繰り返しの処理」の部分を繰り返します。

変数の値の増減で「繰り返しを行う条件」を設定したい場合、whileでは処理が始まる前に、変数を設定しておく必要がある。

そして、繰り返していくうちに、必ず「繰り返しを行う条件」が誤り(FALSE)になるようにする必要があります。

 

<?php
$r = 16;
while( $r <= 250){
   $rh = dechex($r);
   print"<FONT COLOR = #{$rh}0000>赤色の変化</FONT><br>";
   $r += 10;
}
?>

結果

f:id:mkyosuke:20191126181903p:plain

最初に$rに「16」を代入し、次のwhile文ではこの変数を使用して条件を設定します。

最初、$rは16なので、「<=250」という条件は正しくなり次の処理のdechex関数で10進数の値を16進数に変換します。

次に「$r + = 10」で$rが10増えます。そしてまたwhileの部分に戻り、「<=250」の条件が正しいかが調べられます。これを繰り返し、最後は$rの値が250を超えると、条件と一致しなくなる(FALSE)ので終了します。

 

do~whileで繰り返す

do~whileの構文

書式

do {

繰り返しの処理

}while(繰り返しを行う条件);

基本的な機能はwhileと同じですが、「繰り返しを行う条件」が処理の後にきます。

条件を調べるのが最後なので、とにかく一回は最低でも実行することになります。

 

<?php
$g = 16;
print"<table>";

do{
   $gh = dechex($g);
   print"<tr><td bgcolor=#00{$gh}00>緑色の変化</td></tr>";
   $g +=10;
}while($g<=250);
print"</table>";
?>

実行結果

f:id:mkyosuke:20191127104114p:plain