操作符系列教材 (三)- Java的邏輯運算符
邏輯運算符
步驟1:長路與 和 短路與
步驟2:長路或 和 短路或
步驟3:取反
步驟4:異或^
示例 1 : 長路與 和 短路與
無論長路與還是短路與
兩邊的運算單元都是布爾值
都爲真時,才爲真
任意爲假,就爲假
區別
長路與 兩側,都會被運算
短路與 只要第一個是false,第二個就不進行運算了
長路與 和 短路與
public class HelloWorld {
public static void main(String[] args) {
//長路與 無論第一個表達式的值是true或者false,第二個的值,都會被運算
int i = 2;
System.out.println( i== 1 & i++ ==2 ); //無論如何i++都會被執行,所以i的值變成了3
System.out.println(i);
//短路與 只要第一個表達式的值是false的,第二個表達式的值,就不需要進行運算了
int j = 2;
System.out.println( j== 1 && j++ ==2 ); //因爲j==1返回false,所以右邊的j++就沒有執行了,所以j的值,還是2
System.out.println(j);
}
}
示例 2 : 長路或 和 短路或
無論長路或還是短路或
兩邊的運算單元都是布爾值
都爲假時,才爲假
任意爲真,就爲真
區別
長路或 兩側都會被運算
短路或 只要第一個是true的,第二個就不進行運算了
長路或 和 短路或
public class HelloWorld {
public static void main(String[] args) {
//長路或 無論第一個表達式的值是true或者false,第二個的值,都會被運算
int i = 2;
System.out.println( i== 1 | i++ ==2 ); //無論如何i++都會被執行,所以i的值變成了3
System.out.println(i);
//短路或 只要第一個表達式的值是true的,第二個表達式的值,就不需要進行運算了
int j = 2;
System.out.println( j== 2 || j++ ==2 ); //因爲j==2返回true,所以右邊的j++就沒有執行了,所以j的值,還是2
System.out.println(j);
}
}
示例 3 : 取反
取反!
真變爲假
假變爲真
public class HelloWorld {
public static void main(String[] args) {
boolean b = true;
System.out.println(b); //輸出true
System.out.println(!b);//輸出false
}
}
示例 4 : 異或^
異或^
不同,返回真
相同,返回假
異或^
public class HelloWorld {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println(a^b); //不同返回真
System.out.println(a^!b); //相同返回假
}
}