摘要:運(yùn)算符是編程語言中非陈耄基礎(chǔ)而又重要的語法吐绵,它基本會出現(xiàn)在每一條語句中。本文將依次對Java中的每一種運(yùn)算符進(jìn)行介紹对妄。
??現(xiàn)在湘今,我們已經(jīng)學(xué)會了如何聲明和初始化變量,但你可能想知道如何操作它們剪菱。運(yùn)算符是對一個(gè)摩瞎,兩個(gè)或三個(gè)操作數(shù)執(zhí)行特定操作并返回結(jié)果的特殊符號。下表列出了Java中的運(yùn)算符:
??表格中的運(yùn)算符是按照從上到下優(yōu)先級依次降低的順序列出的孝常。優(yōu)先級較高的運(yùn)算符在優(yōu)先級相對較低的運(yùn)算符之前進(jìn)行求值旗们。同一行中的運(yùn)算符具有相同的優(yōu)先級。根據(jù)操作數(shù)個(gè)數(shù)的不同构灸,可將運(yùn)算符分為一元上渴、二元和三元運(yùn)算符。在二元運(yùn)算符中喜颁,除了賦值運(yùn)算符是按照從右到左的順序進(jìn)行運(yùn)算稠氮,其余所有的二元運(yùn)算符都是按照從左到右的順序進(jìn)行運(yùn)算的。下面依次對這些運(yùn)算符進(jìn)行介紹半开。
1.算術(shù)運(yùn)算符
??算術(shù)運(yùn)算符用來進(jìn)行基本的算術(shù)運(yùn)算隔披,包括+、-寂拆、*奢米、/和%抓韩。其中,+恃慧、-园蝠、*、/代表最基本的四則運(yùn)算痢士,但是要注意的是彪薛,當(dāng)參與除法運(yùn)算的兩個(gè)操作數(shù)都是整數(shù)時(shí),代表整數(shù)除法怠蹂,例如7/2=3善延;當(dāng)至少有一個(gè)操作數(shù)是浮點(diǎn)數(shù)時(shí),代表浮點(diǎn)除法城侧,例如7.0/2=7/2.0=7.0/2.0=3.5易遣。%表示整數(shù)的求余(或者稱為取模)操作,例如7%2=1嫌佑。
2.關(guān)系運(yùn)算符
??關(guān)系運(yùn)算符用來判斷左右表達(dá)式是否滿足某種關(guān)系豆茫,包括<、>屋摇、<=揩魂、>=、==和!=炮温,分別表示小于火脉、大于、小于等于柒啤、大于等于倦挂、等于和不等于。關(guān)系運(yùn)算符的結(jié)果是boolean類型担巩,例如3<5的結(jié)果是true方援,2==4的結(jié)果是false。
3.邏輯運(yùn)算符
??邏輯運(yùn)算符用來對兩個(gè)布爾值進(jìn)行運(yùn)算兵睛,包括&&肯骇、||和!祖很,分別表示邏輯與笛丙、邏輯或和邏輯非。&&和||是按照“短路”的方式來進(jìn)行運(yùn)算的假颇,即如果左邊的操作數(shù)已經(jīng)能夠確定表達(dá)式的值胚鸯,那么右邊的操作數(shù)就不會計(jì)算,例如x!=0&&32/x>4笨鸡,如果x等于0姜钳,那么右邊的表達(dá)式就不會進(jìn)行運(yùn)算坦冠,也就不會產(chǎn)生錯(cuò)誤。邏輯非用來將后面的布爾值取反哥桥,例如3<2的結(jié)果是false辙浑,那么!3<2的結(jié)果就是true。
4.自增和自減運(yùn)算符
??自增運(yùn)算符++和自減運(yùn)算符--用來對當(dāng)前變量加1或減1拟糕。++和--只能作用于變量判呕,不能作用于表達(dá)式或字面量,例如a++是正確的送滞,(a+1)++和2++都是錯(cuò)誤的侠草。++和--既可以放在變量左邊,也可以放在變量右邊犁嗅,++a表達(dá)式的結(jié)果是加1后a的值边涕,a++表達(dá)式的結(jié)果是加1前a的值。當(dāng)然無論是++a還是a++褂微,最后a的值都會加1功蜓。
5.位運(yùn)算符
??位運(yùn)算符可以直接對整數(shù)在內(nèi)存中的二進(jìn)制位進(jìn)行操作,包括按位與&宠蚂、按位或|霞赫、按位異或^、按位取反~肥矢、左移<<、右移>>和無符號右移>>>叠洗。左移會用0填充低位甘改,右移會用符號位填充高位,無符號右移用0填充高位灭抑。移位運(yùn)算符的右操作數(shù)需要完成模32的運(yùn)算(如果左操作數(shù)時(shí)long類型十艾,則需要模64),例如1<<35等價(jià)于1<<3腾节。
??應(yīng)用在布爾值上時(shí)忘嫉,&和|也會得到布爾值。不過不同于&&和||案腺,&和|在運(yùn)算時(shí)不采用“短路”的方式庆冕,也就是說,無論左邊的操作數(shù)是true還是false劈榨,右邊都會進(jìn)行運(yùn)算访递。
6.賦值運(yùn)算符
??賦值運(yùn)算符用來將一個(gè)值指定給一個(gè)變量,例如a=1同辣。賦值運(yùn)算符左邊一定是變量拷姿,不能是表達(dá)式或字面量惭载。將=和算術(shù)運(yùn)算符或位運(yùn)算符(~除外)結(jié)合,可以得到增強(qiáng)型的賦值運(yùn)算符+=响巢、-=描滔、*=、/=踪古、%=含长、&=、|=灾炭、^=茎芋、<<=、>>=蜈出、>>>=田弥,其作用是左邊的變量先和右邊的操作數(shù)進(jìn)行運(yùn)算,然后再賦值給左邊的變量铡原,例如a+=3等價(jià)于a=a+3偷厦。
7.其他運(yùn)算符
??除了上面提到的運(yùn)算符外,還有一元加(+)燕刻、一元減(-)和唯一的一個(gè)三元運(yùn)算符(?:)只泼。一元加作用于數(shù)字字面量時(shí),用于顯式地說明該字面量是正數(shù)卵洗,例如+1表示正1请唱;作用于表達(dá)式或變量時(shí),寫與不寫沒有區(qū)別过蹂。一元減用于計(jì)算它后面地操作數(shù)地相反數(shù)十绑。對于三元運(yùn)算符,如果問號前的表達(dá)式為true酷勺,那么整個(gè)表達(dá)式的結(jié)果就是第一個(gè)表達(dá)式的結(jié)果本橙;否則結(jié)果為第二個(gè)表達(dá)式的結(jié)果。例如脆诉,1<2?3:4的結(jié)果是3甚亭,1>2?3:4的結(jié)果是4。