—— 本文參照 Learn Java for Android Development (第三版)
一元操作符
一元操作符包括一元加(+)和一元減(-)鳍鸵,他們是最簡單的操作符。一元減返回的是操作數的負數陈惰,例如-5的結果就是-5绣张,--5的結果就是5。一元加的結果其實就是它本身养涮,因為在平時的運算過程中我們都會省略一元加的符號逢享。例如+5的結果就是5罐监,+-5的結果是-5。雖然一元加平時經常被省略瞒爬,但是它是真實存在的操作符弓柱,所以還是需要提一下的沟堡。
優(yōu)先級和結合性
當我們計算一個表達式的時,java會優(yōu)先考慮操作符的優(yōu)先級矢空,不然的話計算的結果可能就不是我們預期的結果了航罗。比如這個表達式:60 + 3 * 6,其實我的預期的是先做乘法運算再做加法運算屁药,這樣表達式的結果就是78(實際上乘法的優(yōu)先級也確實是高于加法的優(yōu)先級的)粥血。如果java沒有考慮操作符的優(yōu)先級的話運算的結果就是378了,這肯定是不行的吧酿箭。
在開發(fā)的過程中我們可以使用小括號來提高運算的優(yōu)先級從而改變表達式的運算順序复亏。通常最內層的小括號的優(yōu)先級是最高的。例如:2 * ((60 + 3) * 6)這個表達式里面最開始計算的應該是(60+3)缭嫡,然后是(60 + 3) * 6缔御,最后才是剩下的表達式。再比如60 / (3 - 6),最先計算的是(3-6)然后才是除法運算妇蛀。
如果在運算過程中操作符的優(yōu)先級是一樣的情況下耕突,那么就需要考慮操作符的結合性了。例如表達式:9 * 4 / 3评架,這里乘法和除法的優(yōu)先級是一樣的眷茁,但是乘法和除法的結合性是從左往右,所以在這個表達式里面我們先做乘法再做除法古程。
再看另外一種例子:x = y = z = 100蔼卡,這個表達式跟上面的就有點區(qū)別了喊崖,因為=運算符的結合性跟乘法和除法的結合性是相反的挣磨,它是從右往左的,所以需要先把100賦值給z荤懂,然后再賦值給y茁裙,最后賦值給x。
大部分的操作符的結合性都是從左往右的节仿,其中結合性屬于從右往左的有:
+晤锥, -, ++廊宪, --矾瘾,~, !, =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=。
Page 68