Java 中 && 和 & 的區別
阿新 • • 發佈:2018-12-22
在java中&和&&都屬於邏輯運算子,都是判斷兩邊條件為真時為真,否則則為假。
在程式中:
1 int i = 1; 2 if ((i++ > 1) & (i++ > 3)) { 3 System.out.println("啦啦啦"); 4 } else { 5 System.out.println("噢噢噢"); 6 } 7 System.out.println(i);
執行結果:
1 噢噢噢 2 3
& 邏輯運算子實際上會把前後兩個判斷條件都執行一次,也就是 i 自身加兩次 出現結果為 3 。
1 int i = 1; 2 if ((i++ > 1) && (i++ > 3)) { 3 System.out.println("啦啦啦"); 4 } else { 5 System.out.println("噢噢噢"); 6 } 7 System.out.println(i);
執行結果:
1 噢噢噢 2 2
&& 邏輯運算子實際上只判斷了前邊一個條件為假時,得出判斷為false,出現結果為:2
區別:
&& 會出現短路,通過第一個表達判斷整個表示式的結果,後面的表示式將不會運算。
&不會出現短路,將整個表示式都進行運算,&既可操作 boolean 資料還可以操作 數