Java中,邏輯運算符有短路運算符和非短路運算符。
短路運算符指在邏輯與(&&)和邏輯或(||)運算中實現“短路”的機制,即當運算符左側已經可以確定整個表達式的值時,就不再執行右側的表達式,這樣可以提高程序的效率,減少運算次數。
public class ShortCircuit {
public static void main(String[] args) {
int a = 6;
int b = 0;
if (a >5 && b != 0) {
System.out.println("a大于5且b不等于0");
}
if (a >5 || b != 0) {
System.out.println("a大于5或b不等于0");
}
}
}
在上面的代碼中,因為a的值大于5,第一個表達式結果為true,但是因為b等于0,所以右側的表達式沒有執行,第一個if語句不會輸出任何結果。而第二個表達式因為左側已經為true,所以右側的表達式也沒有執行,輸出了相應的結果。
非短路運算符則是不考慮左側表達式的結果,在所有的邏輯運算完成后再對結果進行判斷。
public class NonShortCircuit {
public static void main(String[] args) {
int a = 6;
int b = 0;
if (a >5 & b != 0) {
System.out.println("a大于5且b不等于0");
}
if (a >5 || b != 0) {
System.out.println("a大于5或b不等于0");
}
}
}
在這個代碼中,因為使用的是非短路運算符,所以無論左側表達式是否為true,都會執行右側的表達式。因為b等于0,所以第一個if語句不會輸出任何結果。而第二個表達式因為左側已經為true,所以右側的表達式仍然執行,輸出了相應的結果。
上一篇css兩邊橫線
下一篇python畫實時圖