Java运算符的结合性和优先级
来自CloudWiki
- 所有的数学运算符都认为是从左向右运算的,Java语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。
- 运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。表2-3列出了包含分隔符在内的所有运算符的优先级顺序。
解释:上表中说明了两层意思, 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程序设计