第4章 制御構文 / 第3回 模擬試験

PHPの`do~while`文に関する次の記述のうち、正しいものはどれか。

`do~while`文は、条件を満たさなくても必ず1回は処理を実行する。 正解
`do~while`文は`while`文と全く同じ動作をする。
`do~while`文では条件式の後にセミコロンを付けてはならない。
`do~while`文はPHPでは廃止された構文である。
解説
`do { ... } while (条件);`は、まずブロック内の処理を1回実行してから条件を判定します。そのため、条件が最初から満たされていない場合でも、必ず最低1回は処理が実行されます。 他の選択肢が誤りである理由は次の通りです。 ・通常の`while (条件) { ... }`は、処理の「前」に条件を判定するため、条件が最初から偽であれば1回も実行されません。この点が`do~while`との違いです。 ・`do~while`文の構文は`do { ... } while (条件);`のように、末尾の`while (条件)`の後にセミコロンが必要です。「付けてはならない」は誤りです。 ・`do~while`文はPHP8時点でも通常のループ構文として利用できる、現役の構文です。 例: ``` $i = 10; do { echo $i; // 条件を満たさなくても1回は実行される } while ($i < 5); // 出力: 10 ``` (参照: 独習PHP 第4版 第4章 制御構文 4.2.1節 while/do~while命令 p.140〜141)

あわせて読みたい解説記事