Java 邏輯運(yùn)算符中&&與&,||與|的區(qū)別
在Java的邏輯運(yùn)算符中,有這么四類:&&(短路與),&,|,||(短路或)。
&&和&都是表示與,區(qū)別是&&只要第一個(gè)條件不滿足,后面條件就不再判斷。而&要對(duì)所有的條件都進(jìn)行判斷。
看下面的程序:
public static void main(String[] args) { // TODO Auto-generated method stub if((23!=23)&&(100/0==0)){ System.out.println("運(yùn)算沒有問題。"); }else{ <span style="white-space:pre"> </span>System.out.println("沒有報(bào)錯(cuò)"); } }
輸出的是“沒有報(bào)錯(cuò)”。而將&&改為&就會(huì)如下錯(cuò)誤:
Exception in thread "main" java.lang.ArithmeticException: / by zero
原因是:&&時(shí)判斷第一個(gè)條件為false,后面的100/0==0這個(gè)條件就沒有進(jìn)行判斷。
&時(shí)要對(duì)所有的條件進(jìn)行判斷,所以會(huì)對(duì)后面的條件進(jìn)行判斷,所以會(huì)報(bào)錯(cuò)。
||和|都是表示“或”,區(qū)別是||只要滿足第一個(gè)條件,后面的條件就不再判斷,而|要對(duì)所有的條件進(jìn)行判斷。
看下面的程序:
public static void main(String[] args) { // TODO Auto-generated method stub if((23==23)||(100/0==0)){ System.out.println("運(yùn)算沒有問題。"); }else{ System.out.println("沒有報(bào)錯(cuò)"); } }
此時(shí)輸出“運(yùn)算沒有問題”。若將||改為|則會(huì)報(bào)錯(cuò)。
原因是:||判斷第一個(gè)條件為true,后面的條件就沒有進(jìn)行判斷就執(zhí)行了括號(hào)中的代碼,而|要對(duì)所有的條件進(jìn)行判斷,
所以會(huì)報(bào)錯(cuò)。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
ssm項(xiàng)目改造spring?boot項(xiàng)目完整步驟
Spring?Boot現(xiàn)在已經(jīng)成為Java開發(fā)領(lǐng)域的一顆璀璨明珠,它本身是包容萬(wàn)象的,可以跟各種技術(shù)集成,下面這篇文章主要給大家介紹了關(guān)于ssm項(xiàng)目改造spring?boot項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-04-04SpringMVC修改返回值類型后的消息轉(zhuǎn)換器處理方式
這篇文章主要介紹了SpringMVC修改返回值類型后的消息轉(zhuǎn)換器處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Java優(yōu)先隊(duì)列的創(chuàng)建與使用詳解
這篇文章主要介紹了Java優(yōu)先隊(duì)列的創(chuàng)建與使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08最新IntelliJ?IDEA?2022配置?Tomcat?8.5?的詳細(xì)步驟演示
這篇文章主要介紹了IntelliJ?IDEA?2022?詳細(xì)配置?Tomcat?8.5?步驟演示,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08MyBatis分頁(yè)插件PageHelper的使用與原理
提到插件相信大家都知道,插件的存在主要是用來改變或者增強(qiáng)原有的功能,MyBatis中也一樣,下面這篇文章主要給大家介紹了關(guān)于Mybatis第三方PageHelper分頁(yè)插件的使用與原理,需要的朋友可以參考下2023-02-02