2025.3.11(java的逻辑运算符的学习以及优先级)

  1. 逻辑或 |:只要有一个操作数为true,结果就是true;否则为false。注意,这是非短路运算符,即使左边为true,右边仍然会被执行。

  2. 逻辑与 &:两个操作数都为true时结果为true,否则为false。同样是非短路的,两边都会计算。

  3. 逻辑异或 ^:当两个操作数不同时结果为true,相同时为false。




例题(崩溃,鼠标左滑全没了)
基础题
判断题:
boolean a = true, b = false;
boolean result = (a || b) && !b;
输出结果是什么?
答案:true
解析:a || b → true,!b → true,true && true → true。

选择题:
以下哪个表达式的结果为 true?
A. true ^ true
B. false || true
C. !(true && false)
D. true & false
答案:B、C
解析:

A: true ^ true → false

B: false || true → true

C: !(true && false) → !false → true

D: true & false → false

进阶题
int x = 5, y = 10;
boolean result = (x++ > 5) && (--y < 10);
result = ___,x = ___,y = ___
答案:false, 6, 10
解析:

x++ > 5 → 5 > 5 → false(x 变为 6),短路 && 不计算右侧,y 保持 10。

代码分析:

boolean a = true;
boolean b = false;
boolean c = a | (b = true);
c 和 b 的值分别是什么?
答案:c = true, b = true
解析:非短路 | 会执行右侧表达式 (b = true),修改 b 为 true。

运算符优先级:

boolean result = 3 > 5 || 2 < 4 && 6 == 6;
等价于以下哪个表达式?
A. (3 > 5) || ((2 < 4) && (6 == 6))
B. ((3 > 5) || (2 < 4)) && (6 == 6)
答案:A
解析:&& 优先级高于 ||。

综合应用题
短路逻辑陷阱:
boolean flag = false;
if (flag && (10 / 0 == 0)) {
System.out.println("No Error");
}
是否会抛出异常?
答案:否
解析:短路 && 左侧为 false,右侧不执行,避免除零异常。

异或运算符:

boolean p = true, q = true, r = false;
boolean result = p ^ q ^ r;
result 的值是什么?
答案:false
解析:

p ^ q → true ^ true → false

false ^ r → false ^ false → false

混合运算:

int a = 2, b = 3;
boolean res = (a++ == 2) | (--b == 2) && (a + b == 5);
res = ___,a = ___,b = ___
答案:true, 3, 2
解析:

a++ == 2 → true(a=3)

--b == 2 → 2 == 2 → true(b=2)

true | true → true

&& 左侧已为 true,右侧 3 + 2 == 5 → true

最终 true && true → true.

挑战题
复杂表达式:

boolean x = true, y = false, z = true;
boolean result = x || y && z ^ !x;
result = ___
答案:true
解析:

优先级:! > ^ > && > ||

计算步骤:

!x → false

z ^ false → true ^ false → true

y && true → false && true → false

x || false → true.

实际场景:

boolean isLoggedIn = true;
boolean hasPermission = false;
String message = (isLoggedIn && hasPermission) ? "Access Granted" : "Access Denied";
message 的值是什么?
答案:"Access Denied"
解析:isLoggedIn && hasPermission → true && false → false。

posted @ 2025-03-11 20:52  痛苦的大学生修勾酱  阅读(78)  评论(0)    收藏  举报