0 寫在前面
JAVA中有兩個(gè)短路運(yùn)算,一個(gè)是短路與,一個(gè)是短路或。
所謂短路,就是當(dāng)一個(gè)參與運(yùn)算的操作數(shù)足以推斷該表達(dá)式的值時(shí),另一個(gè)操作數(shù)(可能是表達(dá)式)就不會執(zhí)行。
1 介紹
短路與:&&
短路或:||
應(yīng)用:
-------------------------------------------
兩個(gè):(邏輯1 && 邏輯2)
多個(gè):(邏輯1 && 邏輯 2 && 邏輯3 &&……)
-------------------------------------------
兩個(gè):(邏輯1 || 邏輯2)
多個(gè):(邏輯1 || 邏輯 2 || 邏輯3 ||……)
-------------------------------------------
2 舉例
邏輯與、邏輯或都是自作向右計(jì)算。
2.1 邏輯與 &&
兩邊同時(shí)為true,則為true。
有一方為false,則為false。
左邊為false,右邊不執(zhí)行,為false。
如果第一個(gè)操作數(shù)已經(jīng)能夠確定表達(dá)式為false,則自動(dòng)停止,第二個(gè)就不再進(jìn)行運(yùn)算判斷。
舉例:
int a = 3;
int b = 3;
System.out.println(a++ == 10 && ++b == 10);//false
System.out.println(a);//4
System.out.println(b);//3
}
結(jié)果為false。
因?yàn)閍++的運(yùn)算為先使用a的值再自加,所以3==10的結(jié)果為false,那么第一個(gè)表達(dá)式為false時(shí)在短路與中,第二個(gè)表達(dá)式不執(zhí)行;
沒走到第二個(gè)表達(dá)式,那么b也就沒運(yùn)算,b得值還是3;
2.2 邏輯或 ||
兩邊同時(shí)為false,則為false。
有一方為true,則為true。
左邊為true,右邊不執(zhí)行,為true。
如果第一個(gè)操作數(shù)已經(jīng)能夠確定表達(dá)式為true,則自動(dòng)停止,第二個(gè)就不再進(jìn)行運(yùn)算判斷。
int x = 3;
int y = 3;
System.out.println(x++ == 3 || ++y==10);//true
System.out.println(x);//4
System.out.println(y);//3
結(jié)果為true。
因?yàn)閤++的運(yùn)算為先使用x的值再自加,所以3==3的結(jié)果為true,那么第一個(gè)表達(dá)式為true時(shí)在短路或中,第二個(gè)表達(dá)式不執(zhí)行;
沒走到第二個(gè)表達(dá)式,那么y也就沒運(yùn)算,y得值還是3;
3 小技巧
使用邏輯運(yùn)算可以避免一些小錯(cuò)誤,例如在java中被除數(shù)是0的話,會引發(fā)一些問題。
使用邏輯與則可以避免這個(gè)錯(cuò)誤:
x!=0 && y/x > 3
此段代碼說的是,如果x不等于0,才會將x作為被除數(shù)。
還有許多小技巧,礙于篇幅不列舉了,可以自行探索一下。文章來源:http://www.zghlxwxcb.cn/news/detail-586837.html
4 寫在最后
關(guān)于短路運(yùn)算有一個(gè)口訣可以記一下:
邏輯與–>一假則假,全真才真
邏輯或–>一真則真,全假才假
實(shí)際開發(fā)中邏輯的應(yīng)用還是比較多的。文章來源地址http://www.zghlxwxcb.cn/news/detail-586837.html
到了這里,關(guān)于Java中的運(yùn)算符--短路運(yùn)算的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!