2.3.1 运算符的优先级和结合性
由于多种运算符号的存在,同C和C++语言一样,Java语言规定了运算符的优先级与结合性。优先级是指同一表达式中多个运算符被执行的次序,在表达式求值时,先按运算符的优先级别由高到低的次序执行,例如,表达式
a=b+c*d/(e^f)在Java处理时,会按照优先级从高到低的次序进行。首先,括号级别最高,优先执行e^f;其次,执行c*d;第三,将两者结果执行除运算;第四,再和b执行加运算;最后,结果赋值给a。
在很多时候,由于表达式过于复杂,可以通过加括号的方法明确为编译器指定运算方式,同时提高程序的可读性。例如:
原式a|4+c>>b &7||b>a%3
改为(a|(((4+c)>>b)&7))||(b>(a%3))
Java语言严格按照运算符的优先级由高到低地顺序执行各类运算,运算符优先级如表2-5所示。
表2-5 Java语言运算符优先级(由高到低)
圆括号、方括号、点运算符的作用分别是:
·圆括号被用来改变运算的优先级;
·方括号用来表示数组的下标;
·点运算符用来将对象名和成员名连接起来。
如果在一个运算对象两侧的优先级别相同,则按规定的“结合方向”处理,称为运算符的“结合性”。Java规定了各种运算符的结合性,如算术运算符的结合方向为“自左至右”,即先左后右。Java中也有一些运算符的结合性是“自右至左”的。例如:当a=3、b=4时,若k=a-5+b,则k=2(先计算a-5,再计算-2+b);若k=a+=b-=2,则k=5(先计算b-=2,再计算a+=2)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。