点击查看:2015计算机等级考试二级Java入门教程章节汇总
点击查看:2015计算机等级考试二级Java入门教程第二章汇总
2.11 运算符优先级
我们已经介绍了运算符的优先顺序,它决定了在语句中运算符被执行的顺序。如3+4*5这样一个简单的算术表达式,因为乘法运算最先执行,它的优先级大于加法运算,所以该表达式的结果为23.我们现在把Java中出现的所有运算符进行一下归类。正如下表所示,在Java中的每个运算符都有一个优先级。优先级较高的运算符应在优先级较低的运算符之前执行。优先级最高的运算符在表的头一行,往下依次降低,直至最后一行为最低
在表中出现的绝大多数运算符你可能还没有见过,但在学完本书后,你就会全部遇到它们,并且将它们收集在优先级顺序表中,在必要的时候参考一下会非常方便。
由定义可知,后缀运算符++虽然具有很高的优先级,但还是在出现它的表达式中的其他运算符操作后才执行。在这种情况下,优先级决定它所应用的对象,换句话说,后缀++只作用于那些在它之前出现的变量。由于这个原因,我们在前面看到的表达式oranges+++apples等价于(oranges++)+apples,而不是oranges+(++apples).
在一条语句中,优先级相等的运算符的执行顺序,由一个称作结合性的特性决定。在上表中出现在同一行的每组运算符,不是左结合就是右结合。一个左结合运算符将与它左边的操作数相结合。这将导致包括几个具有相同优先级的左结合运算符的表达式,等价于按照从最左向右的顺序执行。在一个表达式中,具有相同优先级的右结合运算符与它右侧操作新相结合。井日从右向左执l行。例如,如奥你写一条语句:a=b+c+10
+运算符属于左结合组的运算符,实际上隐含为:
a=(b+c)+10
另一方面=和op=是右结婚运算符,所以,发、如果你有int类型变量,a、b、c和d都初始化为1,语句:
a+=b=c+0=10
结果a等于12、b和c等于11、d等于10.这条语句等价于:
a+=(b=(c=(a=10));
注意,这些语句用来说明结合操作的过程,我们并不推荐用这种方式编写代码。
你会通过编写程序逐渐学会使用Java中运算符的优先级和结合性。你可能需要来回查询这个表,但是,当你具有一定经验后,就对运算符的运算顺序有了一定的感觉,最后你能够自觉或不自觉地知道什么时候需要括号,什么时候不需要。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |