运算符“||”与“|”,“”和“”的区别 (附带各类位运算符号详解(、|、^、~、<<、>>、>>>)
區(qū)別一:
定義不同:
|| 和 | 都是表示“或”,區(qū)別是||只要滿足第一個(gè)條件,后面的條件就不再判斷,而|要對(duì)所有的條件進(jìn)行判斷。
區(qū)別二:
與操作和或操作的區(qū)別
(1)在Java程序中,使用與操作,要求所有表達(dá)式的判斷結(jié)果都是TRUE,才為真,若有一個(gè)為FALSE,那么最終判斷結(jié)果則為FALSE
(2)使用或操作,只要其中有一個(gè)表達(dá)式為TRUE,那么最終的結(jié)果就為TRUE,只有當(dāng)所有的表達(dá)式為FALSE時(shí)最終結(jié)果才為FALSE
區(qū)別三:
實(shí)際含義不同:
“||”: 如果左邊計(jì)算后的操作數(shù)為true,右邊則不再執(zhí)行,返回true;
“|”:前后兩個(gè)操作數(shù)都會(huì)進(jìn)行計(jì)算。也就是說:“|”不存在短路。
區(qū)別四:
舉例說明
1、當(dāng)使用 | 時(shí),若前面的表達(dá)式為真時(shí),程序會(huì)繼續(xù)執(zhí)行后面的表達(dá)式,然后在得出TRUE的結(jié)果,代碼如下:
public class Test{public static void main(String[] args){int i = 0;if(10==10 | (i++)!=0){System.out.printIn("結(jié)果為真 "+i);}} }結(jié)果如下:結(jié)果為真 1
2、當(dāng)使用 ||(短路或)時(shí),若前面的表達(dá)式結(jié)果為真,則程序不會(huì)再執(zhí)行后面的表達(dá)式,直接得出TRUE的結(jié)果,代碼如下:
public class Test{public static void main(String[] args){int i = 0;if(10==10 || (i++)!=0){System.out.printIn("結(jié)果為真 "+i);}} }結(jié)果如下:結(jié)果為假 0
同理
&&是邏輯與(短路與),當(dāng)?shù)谝粋€(gè)判斷條件不滿足要求時(shí)(返回false),第二個(gè)判斷條件就不會(huì)執(zhí)行;只有當(dāng)兩個(gè)判斷條件都返回true時(shí),整個(gè)邏輯運(yùn)算才返回true。
&按位與,不論什么情況下,兩邊的判斷條件都會(huì)執(zhí)行,當(dāng)兩邊都返回true時(shí),按位與才返回true。
位運(yùn)算符號(hào)詳解
來源:Java中的位運(yùn)算符號(hào)詳解(&、|、^、~、<<、>>、>>>)
按位與(&)、邏輯與(&&)
按位或(|)、邏輯或(||)
異或(^)
取反(~)
左移(<<)
帶符號(hào)右移(>>)、無符號(hào)右移(>>>)
Java中沒有(<<<)符號(hào)!!!
總結(jié)
以上是生活随笔為你收集整理的运算符“||”与“|”,“”和“”的区别 (附带各类位运算符号详解(、|、^、~、<<、>>、>>>)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL中表的字段信息查询--info
- 下一篇: 实现一个通讯录;