論理演算子 練習問題セット(全15問)
ここでは、Java の 論理演算子(&&、||、!) に関する練習問題を レベル別(初級・中級・上級) に分けて出題します。
すべてに 解答・解説付き です。
初心者でも「考えて → 確認して → 理解する」流れでステップアップできる構成になっています。
初級(基本の理解)
論理演算子の動作を感覚でつかむレベル。
問題 1
次の式の結果を答えよ。
true && false
Java✅ 解答: false
💡 解説: 「かつ(AND)」なので、両方が true のときだけ true。
一方が false なら結果は false。
問題 2
次の式の結果を答えよ。
true || false
Java✅ 解答: true
💡 解説: 「または(OR)」はどちらか一方でも true なら true。
問題 3
次の式の結果を答えよ。
!true || false
Java✅ 解答: false
💡 解説: !true は false に変わる。
→ false || false は false。
問題 4
変数を使った次の条件の結果を答えよ。
int x = 5;
int y = 10;
boolean result = (x < 10 && y > 5);
Java✅ 解答: true
💡 解説: x < 10 → true、y > 5 → truetrue && true → true。
問題 5
次の条件は真か偽か?
int score = 75;
boolean isPassed = (score >= 80 || score >= 70);
Java✅ 解答: true
💡 解説: OR は「どちらかが真」でOK。score >= 80 は偽だが、score >= 70 は真 → true || false = true。
中級(条件の組み合わせと短絡評価)
問題 6
次のコードの出力は?
int a = 3;
if (a > 5 && ++a > 0) {
System.out.println(a);
}
System.out.println(a);
Java✅ 解答: 出力 → 3
💡 解説:a > 5 は false。&& の左が false の時点で右は評価されない(短絡評価)。++a は実行されないため、a のまま。
問題 7
次のコードの出力は?
int b = 1;
if (b > 0 || ++b > 2) {
System.out.println(b);
}
Java✅ 解答: 出力 → 1
💡 解説:
左側 b > 0 が true。|| の場合、左が true なら右は評価されない。++b は実行されず b は 1 のまま。
問題 8
次の式の結果は?
!(5 > 3 && 2 < 1)
Java✅ 解答: true
💡 解説:
中の条件:(5 > 3 && 2 < 1) → true && false → false
それを ! で反転 → true
問題 9
次のコードの出力は?
boolean a = false;
boolean b = true;
if (!(a || b)) {
System.out.println("A");
} else {
System.out.println("B");
}
Java✅ 解答: 出力 → B
💡 解説:a || b は true → !(true) は false
→ else の "B" が実行される。
問題 10
次の条件文を日本語で説明せよ。
if (age >= 18 && (isStudent || isMember))
Java✅ 解答:
「年齢が18歳以上 かつ、学生 または 会員である場合」
💡 解説:&& と || を組み合わせるときは、括弧でグループ化して意味を明確にするのがポイント。
上級(応用・複雑な条件)
問題 11
次のコードの出力は?
int x = 0;
if (x > 1 || ++x > 0) {
System.out.println("OK");
}
System.out.println(x);
Java✅ 解答:
出力:
OK
1
💡 解説:
左の x > 1 → false
右の ++x > 0 → x が 1 になって true
→ OK が出力され、x は 1 に。
問題 12
次の条件文を De Morgan の法則を使って書き換えよ。
!(x > 0 && y > 0)
Java✅ 解答:x <= 0 || y <= 0
💡 解説:
「両方が正の数ではない」=「どちらか一方が 0 以下」である。
→ !(A && B) → !A || !B
問題 13
次の条件文を簡単に書き直せ。
if (!(isAdult == true))
Java✅ 解答:if (!isAdult)
💡 解説:isAdult == true はそのまま isAdult と同じ意味。
否定を付けると !isAdult。
問題 14
次の条件を、短絡評価を考慮して安全な形に書き換えよ。
if (str.length() > 0 && str != null)
Java✅ 解答:if (str != null && str.length() > 0)
💡 解説:
短絡評価では左の式が false なら右が評価されない。
先に null チェックを行うことで NullPointerException を防げる。
問題 15
次の条件を等価な別の書き方にせよ。
if (!(a > 10 || b < 5))
Java✅ 解答:if (a <= 10 && b >= 5)
💡 解説:
ド・モルガンの法則!(A || B) → !A && !B
→ !(a > 10) → a <= 10
→ !(b < 5) → b >= 5
まとめ:論理演算子を使いこなすコツ
| ポイント | 説明 |
|---|---|
&& は両方 true で true | 「A かつ B」 |
| ` | |
! は真偽を反転 | 「〜ではない」 |
| 括弧でグループ化 | (条件A && 条件B) のように見やすく |
| 短絡評価に注意 | 左だけで結果が確定する場合、右は評価されない |
| De Morgan の法則を覚える | 否定の入った式を整理しやすくなる |
