Developer

【PHP問題演習】if文 選択問題②
2022.10.31
Lv2

【PHP問題演習】if文 選択問題②

【PHP問題演習】if文 選択問題②

今回はif文の問題を解いて、理解度の確認を行いましょう。

■問題1

次のプログラムを実行したとき、出力されるものとして正しいものを選んでください。


<?php
    $var1 = 10;
    $var2 = -20;

    if($var1 > 0){
        if($var2 < 0) {
            echo 'A';
        }
    }
    echo 'B';
?>
  1. A
  2. B
  3. AB
  4. 何も表示されない

解答
答え: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';
        }
    }
?>
  1. A
  2. B
  3. AB
  4. 何も表示されない

解答
答え: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';
    }
?>
  1. A
  2. B
  3. C
  4. AB
  5. AC
  6. BC
  7. ABC
  8. 何も表示されない

解答
答え: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';
    }
?>
  1. A
  2. AE
  3. ABE
  4. BE
  5. BCE
  6. BDE
  7. 何も表示されない

解答
答え: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';
?>
  1. ABC
  2. ABCF
  3. ACD
  4. ACDF
  5. ACF
  6. 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基礎 連載目次