在Java中短路運算符指的是"&&"(與) 和"||"(或) ,非短路運算符指的是"&" 和"|".
1.1短路運算符:顧名思義,短路運算符具有短路功能.
|-如果 "&&" 運算符的第一個表達式為false,則第二個表達式就不會執行
|-如果 "||" 運算符的第一個表達式為true,則第二個表達式就不會執行
例如:
public class Test { public static void main(String[] args) { int i = 0; int j = 0; if (++i > 0 || ++j > 0) { System.out.println("i的值:" + i); System.out.println("j的值:" + j); } } }
因為++i>0為true 所以++j>0將不會被執行.
輸出的結果就是:
i的值:1 j的值:0
1.2非短路運算符
非短路運算符不管第一個表達式是否可以得出最后結果,都要對第二個表達式進行判斷.
public class Test { public static void main(String[] args) { int i = 0; int j = 0; if (++i > 0 | ++j > 0) { System.out.println("i的值:" + i); System.out.println("j的值:" + j); } } }
而非短路邏輯運算符的答案是:
i的值:1 j的值:1
1.3總結
短路運算符只能用於邏輯表達式內,非短路運算符可用於位表達式和邏輯表達式內。也可以說:短路運算只能操作布爾型的,而非短路運算不僅可以操作布爾型,而且可以操作數值型。
但是在判斷的時候推薦使用短路運算符進行邏輯判斷,因為短路運算符在一定程度上可以提高程序運行的效率
