一、邏輯運算符的使用
1)邏輯運算符的連接的是布爾表達式,要與位運算符做區分。
2)使用方法:
public class Test {
public static void main(String[] args) {
System.out.println(true & false);//結果為false
System.out.println(true & true);//結果為true
System.out.println(false & false);//結果為false
System.out.println(false & true);//結果為false
/*
System.out.println(true && false);//結果為false
System.out.println(true && true);//結果為true
System.out.println(false && false);//結果為false
System.out.println(false && true);//結果為false
*/
}
}
結論:邏輯與只有當符號兩邊的表達式都為true時結果才為true
==============================================================
public class Test {
public static void main(String[] args) {
System.out.println(true | false);//結果為true
System.out.println(true | true);//結果為true
System.out.println(false | false);//結果為false
System.out.println(false | true);//結果為true
/*
System.out.println(true || false);//結果為true
System.out.println(true || true);//結果為true
System.out.println(false || false);//結果為false
System.out.println(false || true);//結果為true
*/
}
}
結論:邏輯或只有當符號兩邊的表達式都為false時結果才為false
==============================================================
二、‘短路與’、‘短路或’
1)‘&、|’與‘&&、||’的區別
單個的邏輯運算符會將左右兩個表達式都進行運算得出布爾值,再進行運算。‘短路與’若左邊表達式為false則不會對右邊的表達式進行判斷,
因為結果必為false;‘短路或’若左邊表達式結果為true則不會對右邊的表達式進行判斷,因為結果必為true。
短語的邏輯運算符相當於普通的邏輯運算符效率更高些。
三、例子
public class Test {
public static void main(String[] args) {
int num = 1;
System.out.println(false & num++==1);//即使前面為false,右邊的表達式還是會繼續執行,即num++
System.out.println(num);//2
System.out.println("=====華麗的分割線=====");
num = 1;
System.out.println(false && num++==1);//左邊的表達式為false,右邊的表達式將不會執行,即num不會自增
System.out.println(num);//1
}
}
輸入的結果為:
false
2
=====華麗的分割線=====
false
1
短路與是同樣的道理,大家可以自己編寫代碼驗證一下
==============================================================