—— 本文参照 Learn Java for Android Development (第三版)
一元操作符
一元操作符包括一元加(+)和一元减(-),他们是最简单的操作符。一元减返回的是操作数的负数,例如-5的结果就是-5,--5的结果就是5。一元加的结果其实就是它本身,因为在平时的运算过程中我们都会省略一元加的符号。例如+5的结果就是5,+-5的结果是-5。虽然一元加平时经常被省略,但是它是真实存在的操作符,所以还是需要提一下的。
优先级和结合性
当我们计算一个表达式的时,java会优先考虑操作符的优先级,不然的话计算的结果可能就不是我们预期的结果了。比如这个表达式:60 + 3 * 6,其实我的预期的是先做乘法运算再做加法运算,这样表达式的结果就是78(实际上乘法的优先级也确实是高于加法的优先级的)。如果java没有考虑操作符的优先级的话运算的结果就是378了,这肯定是不行的吧。
在开发的过程中我们可以使用小括号来提高运算的优先级从而改变表达式的运算顺序。通常最内层的小括号的优先级是最高的。例如:2 * ((60 + 3) * 6)这个表达式里面最开始计算的应该是(60+3),然后是(60 + 3) * 6,最后才是剩下的表达式。再比如60 / (3 - 6),最先计算的是(3-6)然后才是除法运算。
如果在运算过程中操作符的优先级是一样的情况下,那么就需要考虑操作符的结合性了。例如表达式:9 * 4 / 3,这里乘法和除法的优先级是一样的,但是乘法和除法的结合性是从左往右,所以在这个表达式里面我们先做乘法再做除法。
再看另外一种例子:x = y = z = 100,这个表达式跟上面的就有点区别了,因为=运算符的结合性跟乘法和除法的结合性是相反的,它是从右往左的,所以需要先把100赋值给z,然后再赋值给y,最后赋值给x。
大部分的操作符的结合性都是从左往右的,其中结合性属于从右往左的有:
+, -, ++, --,~, !, =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=。
Page 68
网友评论