Java短路運算符和非短路運算符


  在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總結

  短路運算符只能用於邏輯表達式內,非短路運算符可用於位表達式和邏輯表達式內。也可以說:短路運算只能操作布爾型的,而非短路運算不僅可以操作布爾型,而且可以操作數值型。

  但是在判斷的時候推薦使用短路運算符進行邏輯判斷,因為短路運算符在一定程度上可以提高程序運行的效率

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM