第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)
関連する問題
- 次のコードの実行結果として正しいものはどれか。 ```php $num = ['zero', 'one', 'three']; $num[3] = 'four'; $num[2] = 'two'; print ('【loop_A】'); for ($i = 0, $count_num = count($num); $i < $count_num; $i++) { print ($num[$i] . ','); } print ('【loop_B】'); foreach ($num as $i => $n) { print ($i . ','); } ```
- PHPの条件分岐に関する次の記述のうち、誤っているものはどれか。
- 次のコードの実行結果として正しいものはどれか。 ```php $i = 1; while ($i <= 5) { print $i; $i++; } ```
- PHPのループ制御に関する次の記述のうち、正しいものはどれか。
- PHPの条件分岐に関する次の記述のうち、正しいものはどれか。