PHPのdo while文の書き方

PHPの基本的な制御構造のうち、同じ処理を繰り返す「ループ」の一種であるdo while文について説明します。 do while文はwhile文とほぼ同じ用途の構文ですが、必ず1回は実行される点が異なります。

do while文の書式

do {
    実行内容
} while (繰り返し条件);
while文の場合は、繰り返し条件が判定されtrueであれば処理が実行され。一方、do while文の場合は一度処理が実行されてから繰り返し条件が判定され、判定がtrueであればさらに処理が実行されます。 サンプルコード1 実際の動作をサンプルで確認してみましょう。 以下は、0から1ずつ加算されていくシンプルなプログラムです。
$i = 0;                 // 変数$iに0をセット
do {                    // 繰り返しの始まり
    echo $i;            // $iの内容を表示
    $i += 1;            // $iに+1
} while ($i <= 5);      // 繰り返し条件の指定<br>
実行結果1
01234
必ず1回は実行されるため、次の例でも少なくとも1回はechoが実行されます。 サンプルコード2
<?php
$i = 0;
do {
    echo $i;
    $i += 1;
} while ($i < 0);
実行結果2
 0
上記のdo while文をwhile文に書き換えると、何も表示されなくなります。 サンプルコード3
<?php
$i = 0;
while ($i <= 0) {
    echo $i;
    $i += 1;
}
実行結果3
(何も表示されない)

制御構造:break、continue

また、while文と同じく、繰り返しを終了するbreakや、繰り返しをスキップするcontinueを使うこともできます。 サンプルコード4
<?php
$i = 0;
do {
    if ($i == 2){           // $iが2なら
        $i += 1;            // $iを+1
        continue;           // 次の繰り返しを開始
    }
    else if ($i == 4) {     // $iが4なら
        break;              // 繰り返し中止
    }
    echo $i;
    $i += 1;
} while ($i < 5);
実行結果5
013
"2"と、"4"以降("4"と"5")はechoされません。 繰り返し(ループ)は配列などに対して同じ処理を繰り返すときに使用する構文です。do while文はwhile文と異なり、処理を実行した後の繰り返し判定になるため、少なくとも1回は本体が実行されるという点に気をつけてください。

イベント

2017/12/05(火)
Design Thinking Square