Java运算符的结合性和优先级

来自CloudWiki
跳转至: 导航搜索
  • 所有的数学运算符都认为是从左向右运算的,Java语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。
  • 运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。表2-3列出了包含分隔符在内的所有运算符的优先级顺序。
  • Java2-6.png
  • Java2-7.png

解释:上表中说明了两层意思, 1.在同一个表达式中出现了不同的运算符时,按照上表中运算符的优先级来计算表达式:

括号 > 单目运算符 > 算术运算符(*、/、%) > 算术运算符(+、-) > 位运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符

(a+b)*c , a+b*c , a+b>2 && b>0  ,a-b<2 ||a<1
  • 括号比一般的运算符优先:(a+b)*c
  • 单目运算符比算术运算符优先:++i + 2
  • 算术运算符比关系运算符优先:a+b>2
  • 关系运算符比逻辑运算符优先:a+b>2 && b>0
  • 赋值运算符最弱。

2.在在同一个表达式中出现了同一级别的运算符时,按照运算符的结合性来计算表达式:

a+b-c  , b*c/d, a=b=2
  • 注意:Java语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外
!b,++i,a=b=2

返回 Java程序设计