运算符优先级-Java计算机等级考试

发布于 2018-02-02 09:51  编辑:盘子
0
计算机等级考试题库 扫码微信刷题

运算符优先级


我们已经介绍了运算符的优先顺序,它决定了在语句中运算符被执行的顺序。如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中运算符的优先级和结合性。你可能需要来回查询这个表,但是,当你具有一定经验后,就对运算符的运算顺序有了一定的感觉,最后你能够自觉或不自觉地知道什么时候需要括号,什么时候不需要。





考无忧小编推荐:

更多计算机等级考试真题及答案>>>点击查看

想知道更多关于计算机等级报考指南、考试时间和考试信息的最新资讯在这里>>>点击查看


本文网址:http://www.k51.com.cn/info/jsjdjks/1802/0226681.html
选择分享到: