【PHP問題演習】if文 選択問題②
今回はif文の問題を解いて、理解度の確認を行いましょう。
■問題1
次のプログラムを実行したとき、出力されるものとして正しいものを選んでください。
<?php
$var1 = 10;
$var2 = -20;
if($var1 > 0){
if($var2 < 0) {
echo 'A';
}
}
echo 'B';
?>
- A
- B
- AB
- 何も表示されない
解答
答え:
3. AB
■解説
1つ目のifの条件式「$var1 > 0」は true なので
if のブロック内の処理を実行します。
ブロック内に更にif文がありますが、
そのifの条件式「$var2 < 0」も true なので
そのブロック内の echo 'A' が実行されます。
ifのブロックを抜けた後は、引き続き処理が実行されるため
echo 'B' が実行されます。
■問題2
次のプログラムを実行したとき、出力されるものとして正しいものを選んでください。
<?php
$var1 = 10;
$var2 = -20;
if($var1 > 0){
if($var2 < 0) {
echo 'A';
} else {
echo 'B';
}
}
?>
- A
- B
- AB
- 何も表示されない
解答
答え:
2. B
■解説
1つ目のifの条件式「$var1 > 0」は true なので
if のブロック内の処理を実行します。
ブロック内に更にif文がありますが、
そのifの条件式「$var2 > 0」も true なので
そのブロック内の echo ‘A’ が実行されます。
ifの条件が true となったため、
その後に続く else ブロックは実行されず
すべてのif文から抜け出します。
■問題3
次のプログラムを実行したとき、出力されるものとして正しいものを選んでください。
<?php
$var1 = 10;
$var2 = -20;
if($var1 > 0){
if($var2 > 0) {
echo 'A';
} else if ($val2 < 0) {
echo 'B';
}
}else {
echo 'C';
}
?>
- A
- B
- C
- AB
- AC
- BC
- ABC
- 何も表示されない
解答
答え:
2. B
■解説
ifの条件式「$var1 > 0」は true なので
if のブロック内の処理を実行します。
この時点で10行目のelseブロックは実行されません。
ifのブロック内でさらにif文があり、
ifの条件式「$var2 > 0」は false のため、
このifブロックは実行されません。
つづく else ifの条件式「$var2 < 0」は true なので、
echo 'B'; が実行され、すべてのif文を抜けます。
■問題4
次のプログラムを実行したとき、出力されるものとして正しいものを選んでください。
<?php
$var1 = 10;
$var2 = -20;
if($var1 < 0){
echo 'A';
} else {
echo 'B';
if ($var2 < 0) {
echo 'C';
} else {
echo 'D';
}
echo 'E';
}
?>
- A
- AE
- ABE
- BE
- BCE
- BDE
- 何も表示されない
解答
答え:
5. BCE
■解説
ifの条件式「$var1 < 0」は false なので
つづく else のブロック内の処理を実行します。
ブロック内の echo 'B' が実行されたあと、
ifの条件式「$var2 < 0」が true なので
echo 'C' が実行されますが、
その後の10行目の else ブロックは実行されません。
13行目の echo 'E' は実行され、すべてのif文を抜けます。
■問題5
次のプログラムを実行したとき、出力されるものとして正しいものを選んでください。
<?php
$var1 = 10;
$var2 = -20;
if($var1 > 0){
echo 'A';
if($var2 > 0) {
echo 'B';
}
echo 'C';
}else {
if($var2 < 0){
echo 'D';
}
echo 'E';
}
echo 'F';
?>
- ABC
- ABCF
- ACD
- ACDF
- ACF
- DEF
解答
答え:
5. ACF
■解説
ifの条件式「$var1 > 0」は true なので
if のブロック内の処理を実行します。
この時点で10行目のelseブロックは実行されないため、
D,E は出力されません。
ifのブロック内で echo ‘A’; が実行され
さらにif文がありますが
条件式「$var2 > 0」は false のため実行されず、
続く echo ‘C’; が実行されます。
すべてのif文を抜けた後、最後に echo ‘F’; が実行されます。
■関連記事
PHP基礎 連載目次リンク
PHP基礎 連載目次