[解答と解説] 論理演算子
前ページの練習問題「【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 && $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 && $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で開発された有名なWebサイト
- PHPでどのような機能が作れるか?
- サーバーについて理解しよう
- Webサーバーの処理について詳しく説明
- PHPプログラムの動作について説明
- パソコンにPHPの動作環境を構築しよう
- 一番簡単なPHPプログラムを書いてみよう
- ブラウザ画面にメッセージを表示しよう
- PHPタグの書き方と終了タグの省略
- 特殊なメッセージ(文字列)の書き方
- PHPプログラムで計算をしてみよう
- 変数
- 文字列の結合とヒアドキュメント
- ファイルの分割とファイルの読み込み
- コメント
- 定数
- 数値と文字列の性質・デバッグ
- 条件分岐 (if文)
- 論理型 (boolean型)
- 比較演算子
- 論理演算子
- [練習問題] 論理演算子
- 現在のページ:[解答と解説] 論理演算子
- 条件分岐 (switch文)
- 三項演算子
- 配列とforeach文
- 代入演算子 / 加算子 / 減算子
- ループ処理 (for文)
- ループ処理 (while文とdo-while文)
- break
- continue
- 連想配列
- 連想配列のループ処理