您好,登錄后才能下訂單哦!
這篇文章主要介紹Java中&、|、&&、||有哪些區別,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Java的特點有哪些 1.Java語言作為靜態面向對象編程語言的代表,實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。 2.Java具有簡單性、面向對象、分布式、安全性、平臺獨立與可移植性、動態性等特點。 3.使用Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
Java中&叫做按位與,&&叫做短路與,它們的區別是:
& 既是位運算符又是邏輯運算符,&的兩側可以是int,也可以是boolean表達式,當&兩側是int時,要先把運算符兩側的數轉化為二進制數再進行運算,而短路與(&&)的兩側要求必須是布爾表達式。舉例如下:
12&5 的值是多少?答:12轉成二進制數是1100(前四位省略了),5轉成二進制數是0101,則運算后的結果為0100即4 這是兩側為數值時;
若 int i = 2,j = 4;則(++i=2)&(j++=4)的結果為false,其過程是這樣的:先判斷++i=2是否成立,這里當然是不成立了(3 == 2),但是程序還會繼續判斷下一個表達式是否成立,j++=4 ,該表達式是成立的,但是&運算符要求運算符兩側的值都為真,結果才為真,所以(++i=2)&(j++=4)的結果為 false 注意 :
&為真的條件是兩側表達式都為真,但是即使我們判斷出左側表達式的值為false,程序也還是要繼續執行去判斷右側的表達式值的真假
若 int i = 2,j = 4;則(++i=2)&&(j++=4)的結果為false,其過程基本上和上面的是相同的,但是若左側表達式的值為false時,程序則不會繼續判斷右側表達式的真假了,短路與中,短路這個詞大概也就是這個意思吧
Java中‘|’與‘||’的區別
int i=0; if(3>2 || (i++)>1) i=i+1; System.out.println(i);
這段程序會打印出1,而不是打印出2。
因為在if的條件判斷中,程序先判斷第一個表達式3>2是否成立,結果3>2為真,那么按照邏輯來說,無論后面一個表達式(i++)>1是否成立,整個或表達式肯定為真,因此程序就不去執行判斷后面一個表達式即(i++)>1了,所以這里i并沒有自增1。然后程序執行到i=i+1,于是i變為1。最后打印出1。
int i=0; if(3>2 | (i++)>1) i=i+1; System.out.println(i);
如果換做這樣寫,那么就是打印出2了,因為無論第一個條件3>2是否為真,程序都會去執行判斷第二個條件表達式,因此i++這個自增是會被執行的,再加上if內的i=i+1,所以最終i=2。
有些人習慣把||叫做短路或,把&&叫做短路與。&&和&的區別和||與|的區別類似,對于&&來說,如果前面的條件表達式已經為假了,整個條件表達式肯定為假,就不會去執行判斷后面的條件表達式。
以上是“Java中&、|、&&、||有哪些區別”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。