java基礎(chǔ),求解答。
問(wèn)題描述
public class Demo {
public static void main(String args[]) { boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ; System.out.println(flag ? 'mldn' : 'yootk') ; } } 代碼如上,我任務(wù)考察的是 && 符號(hào) 與 & 符號(hào)的區(qū)別,但是在最后一個(gè) 1 / 0 == 0 這個(gè)竟然能走通,而且打印出來(lái)了yootk,這個(gè)除數(shù)不是不能為零的嗎?為什么能走通呢?很是費(fèi)解,希望大神可以給解釋下,謝謝。
問(wèn)題解答
回答1:&& 和 || 具有短路效應(yīng):短路效應(yīng)的根本原因是提高性能
&& 運(yùn)算符檢查第一個(gè)表達(dá)式是否返回 false,如果是 false , 則結(jié)果必為 false,不再檢查其他內(nèi)容|| 運(yùn)算符檢查第一個(gè)表達(dá)式是否返回 true,如果是 true , 則結(jié)果必為 true,不再檢查其他內(nèi)容
public static void main(String args[]) { boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ; System.out.println(flag ? 'mldn' : 'yootk') ; }
10%2 == 1 為 false ,后面的內(nèi)容就不再執(zhí)行了
回答2:10%2 == 1為 false,整個(gè)表達(dá)式最終結(jié)果就是false,后面的不執(zhí)行了,短路了。
回答3:&&和||會(huì)短路,但&和|不會(huì)。如果你把&&改成&就一定會(huì)有異常了。
相關(guān)文章:
