第4章 制御構文 / 第5回 模擬試験
PHPのカンマ演算子(for文における複数の式)に関する次の記述のうち、正しいものはどれか。
`for`文の初期化式や更新式では、カンマで区切って複数の式を記述できる。
正解
カンマ演算子は`if`文の条件式でのみ使用できる。
カンマ演算子を使うと、`for`ループは1回しか実行できなくなる。
カンマ演算子はPHPではサポートされていない。
解説
`for`文の初期化式・更新式の部分には、カンマ`,`で区切って複数の式をまとめて記述できます。複数の変数を同時に初期化・更新したい場合に便利です。
例:
```
for ($i = 0, $j = 10; $i < $j; $i++, $j--) {
echo "$i-$j ";
}
// 出力: 0-10 1-9 2-8 3-7 4-6
```
他の選択肢が誤りである理由は次の通りです。
・カンマで複数式をまとめる書き方は`for`文の初期化式・更新式で使われるもので、「`if`文の条件式でのみ使用できる」という記述は誤りです。
・カンマ演算子を使ってもループの繰り返し回数には影響しません。「1回しか実行できなくなる」というのは誤りです。
・カンマを使ったこの書き方はPHPで正式にサポートされています。
(参照: 独習PHP 第4版 第4章 制御構文 4.2.4節 補足 カンマ演算子 p.146)
関連する問題
- 次のコードの実行結果として正しいものはどれか。 ```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の条件分岐に関する次の記述のうち、正しいものはどれか。