PHP PHP入門講座 プログラミング

【PHPプログラミング入門講座】[解答と解説] 論理演算子

PHPプログラミングのキービジュアル

[解答と解説] 論理演算子

前ページの練習問題「【PHPプログラミング入門講座】[練習問題] 論理演算子」の解答&解説です。
練習問題が解けたら、このページで答え合わせをしてみましょう!

練習問題1

次の表の「式」に対して、「条件A」と「条件B」の結果(true / false)が変化した場合、「式の結果」はそれぞれどうなるでしょうか?
表内の(A)〜(D) に true / false のどちらか適切な値を埋めてください。

条件A 条件B 式の結果
条件A && 条件B true true (A)
true false (B)
false true (C)
false false (D)

練習問題1の解答と解説

<解答>

条件A 条件B 式の結果
条件A && 条件B true true (A)
true
true false (B)
false
false true (C)
false
false false (D)
false

<解説>

「条件Aがtrue かつ 条件Bがtrue」の場合は、「条件A && 条件B」はtrueになります。それ以外はfalseになります。

練習問題2

次の表の「式」に対して、「条件A」と「条件B」の結果(true / false)が変化した場合、「式の結果」はそれぞれどうなるでしょうか?
表内の(A)〜(D) に true / false のどちらか適切な値を埋めてください。

条件A 条件B 式の結果
条件A || 条件B true true (A)
true false (B)
false true (C)
false false (D)

練習問題2の解答と解説

<解答>

条件A 条件B 式の結果
条件A || 条件B true true (A)
true
true false (B)
true
false true (C)
true
false false (D)
false

<解説>

「条件Aがtrue または 条件Bがtrue」の場合は、「条件A ||条件B」はtrueになります。
よって、条件A、条件Bの両方がtrueか、どちらかがtrueの場合は、「条件A ||条件B」はtrueになり、両方ともfalseの場合は、「条件A ||条件B」はfalseになります。

練習問題3

次の表の「式」に対して、「条件A」の結果(true / false)が変化した場合、「式の結果」はそれぞれどうなるでしょうか?
表内の(A)〜(B) に true / false のどちらか適切な値を埋めてください。

条件A 式の結果
!条件A true (A)
false (B)

練習問題3の解答と解説

<解答>

条件A 式の結果
!条件A true (A)
false
false (B)
true

<解説>

「!条件A」は、「条件A」の否定(NOT)であり、true / falseが逆転します。

練習問題4

次の文章の内容をPHPプログラムで書いてください。

変数$result1と変数$result2のいずれもがtrueの場合は、「正解です。」と出力し、そうでなければ「不正解です。」と出力してください。
(最初に変数$result1と変数$result2に値を代入する処理は、本来は必要ですが、今回はif文の条件の記述の練習が目的のため省略してください。)

練習問題4の解答と解説

<解答>

<?php
  if($result1 &amp;&amp; $result2) {
    echo '正解です。';
  } else {
    echo '不正解です。';
  }

<解説>

「変数$result1と変数$result2のいずれもがtrueの場合」だけ結果がtrueになりそれ以外の場合にfalseになるのは、論理演算子「&&」を使って「$result1 && $result2」と書いた場合です。

※注:プログラムの動作確認をしたい場合は、最初に$result1と$result2に値を代入する処理を追加してください。

練習問題5

次の文章の内容をPHPプログラムで書いてください。

変数$numが20以上かつ40より小さい場合は、「範囲内です。」と出力し、そうでなければ「範囲外です。」と出力してください。
(最初に変数$numに値を代入する処理は、本来は必要ですが、今回はif文の条件の記述の練習が目的のため省略してください。)

練習問題5の解答と解説

<解答>

<?php
  if($num >= 20 &amp;&amp; $num < 40) {
    echo '範囲内です。';
  } else {
    echo '範囲外です。';
  }

<解説>

「変数$numが20以上かつ40より小さい場合」なので「条件A かつ 条件B」の表現になります。
「条件A かつ 条件B」は、論理演算子を使うと「条件A && 条件B」になります。
そして、「条件A」は「$numが20以上」→「$num >= 20」、「条件B」は「$numが40より小さい」→「$num < 40」であるため、全体は「$num >= 20 && $num < 40」になります。

※注:プログラムの動作確認をしたい場合は、最初に$numに値を代入する処理を追加してください。

練習問題6

次の文章の内容をPHPプログラムで書いてください。

変数$numが100以上ではない場合は、「100以上ではありません。」と出力し、そうでなければ「100以上です。」と出力してください。
(最初に変数$numに値を代入する処理は、本来は必要ですが、今回はif文の条件の記述の練習が目的のため省略してください。)

練習問題6の解答と解説

<解答>

<?php
  if(!($num >= 100)) {
    echo '100以上ではありません。';
  } else {
    echo '100以上です。';
  }

<解説>

まず、「変数$numが100以上」なので「$num >= 100」になりますが、「変数$numが100以上ではない」と否定しているため論理演算子「 ! 」を頭に付与して、「!($num >= 100)」になります。

※注:プログラムの動作確認をしたい場合は、最初に$numに値を代入する処理を追加してください。

おわりに

お疲れ様でした。
いかがでしたでしょうか?

もし間違えた練習問題がありましたら、前の記事「【PHPプログラミング入門講座】論理演算子」戻って読み直し、再度、練習問題にチャレンジしてください。

正解できた人は、おめでとうございます!
次の記事に進んでいきましょう!

PHPプログラミング入門講座 〜 全記事一覧 〜

-PHP, PHP入門講座, プログラミング
-, , , ,

Copyright© ハッピー・プログラミング・ライフ , 2020 All Rights Reserved.