第8章 while文 ある条件のときだけ繰り返す
while文は、はじめに条件を判断し、条件にマッチしなくなるまで処理を繰り返し、do~while文は判断を処理の最後に行います。それでは両者を比較していきましょう。
while文
while文とは
while文を利用すると繰り返し処理となるループ処理を制御することが出来ます。while文は、ループ処理を実行する前に条件式が判定され、条件式の判定がTRUEの場合に処理が実行され、FALSEの場合はループから抜ける仕組みです。
while文の記述は3通りあり、
- 処理が1行のときは、「while(条件式)」に続けて処理を記述。
- 処理が複数ある場合は、{}内に処理を記述。
- 同じく複数処理がある場合は、「(条件式):」から「endwhile;」まで処理を記述。
このような記述が出来ます。
<?php
// 1
while(条件式) 処理;
// 2
while(条件式)
{
処理1;
処理2;
・・・
}
// 3
while(条件式):
処理1;
処理2;
・・・
endwhile;
while文を使ってみる
動きを理解するため、簡単なコードを書きました。はじめに
- 変数に0を与え
- 10までという条件式を設定し
- 「変数に1を加えていく」という処理
このような処理です。
<?php
$cnt = 0;
while($cnt <= 10){
echo $cnt++;
echo "<br />";
}
上記コードをブラウザで表示すると、以下のとおりとなります。
条件式に与えられた10以降は処理が行われていないことに注目です。
では、実際に使ってみると・・・
<?php
$dir = "./test/"; //フォルダを指定
if($handle = opendir($dir)){ //指定したフォルダ内をオープン
while(false !== ($filename = readdir($handle))){ //フォルダ内のファイルを読み取り
echo $filename."<br />"; //ファイル名を出力
}
closedir($handle); //最後にディレクトリハンドルを閉じます。
}
これを実行すると、testフォルダ内の、ファイル名、フォルダ名が表示されます。
do~while文
do~while文とは
while文と、do~while文の違いは、条件式の判定箇所であり、前述のとおりwhile文ははじめに条件式を指定し、do~while文は処理を実行した後の記述します。
繰り返しますが、処理を実行した後に条件を判定するため、処理を必ず1度実行するという点がポイントで、処理を実行した後に判定し、TRUEの場合は処理を繰り返し、FALSEの場合はループを抜けるという具合です。
<?php
do{
処理;
}while(条件式);
do~while文を使ってみる
では実際にコードとして書いてみると、
<?php
$num = 0;
do{
echo $num;
echo "<br />";
$num ++;
}
while ($num <= 5);
上記コードをブラウザで表示すると
コメント