Java 里的和運算符(&&)和或運算符(||)是用來連接兩個布爾表達式的,它們都返回一個布爾值。
if (a && b) { // 如果 a 和 b 都為 true,執行這里的代碼 } else if (a || b) { // 如果 a 或者 b 為 true,執行這里的代碼 } else { // 如果 a 和 b 都為 false,執行這里的代碼 }
它們的優先級很高,因此會先被求值。&& 運算符比 || 運算符的優先級要高。
if (a || b && c) { // 這里的運算順序是:b && c 先被求值,然后計算 a || (b && c) } if ((a || b) && c) { // 這里的運算順序是:a || b 先被求值,然后計算 (a || b) && c }
注意,&& 和 || 運算符都是短路的。如果第一個表達式已經能夠決定結果,那么第二個表達式就不會被執行了。
if (a && b.equals("hello")) { // 如果 a 為 false,后面的表達式不會被執行,因此不會出現空指針異常 }
除了 && 和 || 運算符之外,還有一種按位與運算符(&)和按位或運算符(|),它們是用來對二進制數進行位運算的。
int a = 5; // 二進制為 101 int b = 3; // 二進制為 011 int c = a & b; // 二進制為 001,即 1 int d = a | b; // 二進制為 111,即 7