while文は、条件式が真である間、ブロック内の実行文を実行します。
while(条件式){
実行文;
}
while文の処理の流れを図にすると下のようになります。
では例として、前節でfor文を使って作ったスクリプトをwhile文を使って書きなおしてみましょう。
$i = 1;
while($i <= 5){
print "\$i = ", $i, "\n";
$i++;
}
まず$iに1をセットしてからwhile文に入ります。 条件は$i <= 5です。 1 <= 5なので真となり、次のprint文とインクリメントが実行されます。 そしてまた条件評価に戻ります。 やがて$iの値が6になると条件が偽になるので、while文から抜け出します。
while文は「条件が真である間」処理を繰り返しますが、until文はその反対で、「条件が偽である間」処理を繰り返します。 「§5.2 条件分岐」で紹介したif文とunless文のような関係です。
until(条件式){
実行文;
}
上でwhile文を使って書いたスクリプトをuntil文で書きなおしてみましょう。
$i = 1;
until($i > 5){
print "\$i = ", $i, "\n";
}
条件式が$i <= 5ではなく$i > 5になっていることに注意してください。 次の図はuntil文の処理の流れを表した物です。
この節ではwhile文について紹介してきました。 次の節ではforeach文を取り上げます。