第8章 while文

PHP入門

第8章 while文 ある条件のときだけ繰り返す

while文は、はじめに条件を判断し、条件にマッチしなくなるまで処理を繰り返し、do~while文は判断を処理の最後に行います。それでは両者を比較していきましょう。

while文

while文とは

while文を利用すると繰り返し処理となるループ処理を制御することが出来ます。while文は、ループ処理を実行する前に条件式が判定され、条件式の判定がTRUEの場合に処理が実行され、FALSEの場合はループから抜ける仕組みです。

while文の記述は3通りあり、

  1. 処理が1行のときは、「while(条件式)」に続けて処理を記述。
  2. 処理が複数ある場合は、{}内に処理を記述。
  3. 同じく複数処理がある場合は、「(条件式):」から「endwhile;」まで処理を記述。

このような記述が出来ます。

<?php

// 1
while(条件式) 処理;

// 2
while(条件式)
{
    処理1;
    処理2;
    ・・・
}

// 3
while(条件式):
    処理1;
    処理2;
    ・・・
endwhile;

while文を使ってみる

動きを理解するため、簡単なコードを書きました。はじめに

  1. 変数に0を与え
  2. 10までという条件式を設定し
  3. 「変数に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);

上記コードをブラウザで表示すると

コメント

タイトルとURLをコピーしました