Java | 論理演算子(AND・OR・NOT) について

Java Java
スポンサーリンク

論理演算子 練習問題セット(全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
💡 解説: !truefalse に変わる。
false || falsefalse


問題 4

変数を使った次の条件の結果を答えよ。

int x = 5;
int y = 10;
boolean result = (x < 10 && y > 5);
Java

解答: true
💡 解説: x < 10truey > 5true
true && truetrue


問題 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 > 5false
&& の左が false の時点で右は評価されない(短絡評価)。
++a は実行されないため、a のまま。


問題 7

次のコードの出力は?

int b = 1;
if (b > 0 || ++b > 2) {
    System.out.println(b);
}
Java

解答: 出力 → 1
💡 解説:
左側 b > 0true
|| の場合、左が true なら右は評価されない。
++b は実行されず b1 のまま。


問題 8

次の式の結果は?

!(5 > 3 && 2 < 1)
Java

解答: true
💡 解説:
中の条件:(5 > 3 && 2 < 1)true && falsefalse
それを ! で反転 → true


問題 9

次のコードの出力は?

boolean a = false;
boolean b = true;
if (!(a || b)) {
    System.out.println("A");
} else {
    System.out.println("B");
}
Java

解答: 出力 → B
💡 解説:
a || btrue!(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 > 0x が 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 の法則を覚える否定の入った式を整理しやすくなる
タイトルとURLをコピーしました