java运算优先级?

一般而言,单目运算符优先级较高,赋值运算符优先级较低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低。在同一个表达式中运算符优先级高的先...
java运算优先级?
所有的数学运算都认为是从左向右运算的,Java 语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。一般而言,单目运算符优先级较高,赋值运算符优先级较低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低。在同一个表达式中运算符优先级高的先执行。表 1 列出了所有的运算符的优先级以及结合性。

使用优先级为 1 的小括号可以改变其他运算符的优先级,即如果需要将具有较低优先级的运算符先运算,则可以使用小括号将该运算符和操作符括起来。例如下面的表达式:(x-y)*z/5在这个表达式中先进行括号内的减法运算,再将结果与 z 相乘,最后将积除以 5 得出结果。整个表达式的顺序按照从左向右执行,比较容易理解。再来看一个复杂的表达式,如下所示。--y || ++x && ++z;这个表达式中包含了算术运算符和逻辑运算符。根据表 1 中列出的优先级,可以确定它的执行顺序如下:① 先计算 y 的自减运算符,即 --y。② 再计算 x 的自增运算符,即 ++x。③ 接着计算 z 的自增运算符,即 ++z。④ 由于逻辑与比逻辑或的优先级高,这里将 ② 和 ③ 的结果进行逻辑与运算,即 ++x && ++z。⑤ 最后将 ④ 的结果与 ① 进行逻辑或运算,即 --y||++x&&++z。如果没有上述对该表达式执行顺序的说明,第一眼看到它时将很难识别优先级。对于这类问题,可以通过添加小括号使表达的顺序更加清晰,而不用去查优先级表。如下所示为改进后的表达式。(--y)||((++x)&&(++z));技巧:记住这么多运算符的优先级是比较困难的,因此读者应该在实际应用中多多练习。因为 Java 运算符存在这种优先级的关系,因此在做 SCJP 的时候或者某些公司的面试题,有如下 Java 代码:
int a = 5;int b = 4;int c = a++- --b*++a/b-- >>2%a--;
问 c 的值是多少?这样的语句实在太恐怖了,即使多年的老程序员看到这样的语句也会眩晕。这样的代码只能在考试中出现,作为一个程序员如果写这样的代码,恐怕他马上就得走人了,因为他完全不懂程序开发。源代码就是一份文档,源代码的可读性比代码运行效率更重要。 因此在这里要提醒大家:
不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。
不要过多地依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,尽量使用()来控制表达式的执行顺序。
2021-04-12
mengvlog 阅读 8 次 更新于 2025-07-19 12:42:29 我来答关注问题0
  •  翡希信息咨询 java 中的运算符优先级是什么?

    后缀运算符:如expr++和expr,拥有最高的优先级。一元运算符:如++expr、expr、+expr、expr、!expr、~expr等,紧跟在后缀运算符之后。乘除运算符:*、/、%,优先级高于加减运算符。加减运算符:+、。移位运算符:、>>>。关系运算符:=、instanceof。相等运算符:==、!=。...

  • 在Java中,运算符优先级决定了表达式中运算符被计算的顺序。当一个表达式中存在多个运算符时,Java会按照一定的优先级顺序进行计算,以保证计算的准确性和可预测性。下面是Java中常见运算符优先级的排序(从高到低):从上至下,优先级从高到低依次为:逻辑非!,位运算符(如&、|、^),关系运算符...

  • Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低。在同一个表达式中运算符优先级高的先执行。表 1 列出了所有的运算符的优先级以及结合性。使用优先级为 1 的小括号可以改变其他运算符的优先级,即如果需要将具有较低优先级的运算符先运算,则可以使用小括号将该运算符和操作...

  • anonymous JAVA的运算符的优先级是什么样的?

    另外,Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低。在同一个表达式中运算符优先级高的先执行。如下是优先级和结合性。结合性是指如果遇到同一优先级的运算符,程序的执行顺序。比如!和++同时存在,它会先加,然后再去比较是否相等。

  •  百搭屋平台 JAVA运算符优先级中的目数有什么作用?

    首先,目数是指参加运算的运算数的个数 有单目运算、双目运算和三目运算 单目运算就是指一个运算数参与的运算,比如 ++、--等 双目运算就是指两个运算数参与的运算,比如 +、-、*、/等等 三目运算就是指三个运算数参与的运算,比如 i?0:1 其次优先级是对运算符来说的,当多个运算符在一个...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部