Java中&和&&的區別


&

&運算符有兩種用法:(1)按位與;(2)邏輯與。

&&

&&運算符是短路與運算。如果&&左邊的表達式的值是false,右邊的表達式會被直接短路掉,不會進行運算。
很多時候我們可能都需要用&&而不是&,

例1

int i = 0;
    if(i == 3  && ++i > 0 ){
    }
    System.out.println("i = " + i);

    int j = 0;
    if(j == 3  & ++j > 0 ){
    }
    System.out.println("j = " + j);

輸出:
i = 0
j = 1

這是因為&后面的語句執行了,而&&后面的語句沒有執行

例2

來源:https://www.cnblogs.com/hongten/p/hongten_java_yu.html

在驗證用戶登錄時判定用戶名不是null而且不是空字符串,應當寫為:username != null &&!username.equals(""),二者的順序不能交換,更不能用&運算符,因為第一個條件如果不成立,根本不能進行字符串的equals比較,否則會產生NullPointerException異常。

總結

為什么平時大家都使用的是&&而不是&,我認為是&&出錯的可能性更小,而,&容易出錯。


免責聲明!

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



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