邏輯運算符處理 boolean 類型,構建複雜條件判斷。三大運算符:&&(邏輯與)、||(邏輯或)、!(邏輯非)。
| 運算符 | 名稱 | 規則 |
|---|---|---|
&& | 邏輯與 | 雙方均 true 才為 true |
|| | 邏輯或 | 任一方 true 即為 true |
! | 邏輯非 | 取反:true→false,false→true |
判斷 n ∈ [0, 10):
boolean inRange = (n >= 0) && (n < 10);
判斷 n ∉ [0, 10) 兩種寫法:
// 寫法 1:整體取反
boolean notInRange = !((n >= 0) && (n < 10));
// 寫法 2:德摩根定律轉換
boolean notInRange = (n < 0) || (n >= 10);
int n = -1;
boolean b1 = (n >= 0) && (n < 10); // 短路:左側 false,右側不執行
boolean b2 = (n >= 0) & (n < 10); // 非短路:右側仍會執行
實戰影響:若右側包含方法調用或副作用操作,&& 可避免不必要執行:
// 經典面試題驗證
int n = 10;
boolean b = (n < 8) && ((n = 1) != 0); // n 保持 10
int m = 20;
boolean b1 = (m < 8) & ((m = 1) != 0); // m 變為 1
&&、||)&、|)