【发布时间】:2021-10-25 19:44:58
【问题描述】:
在precedence operator in java 8 之后,很明显后缀运算符 (expr++ expr--) 比一元运算符、前一元运算符 (++expr --expr) 具有更高的优先级。 但是在执行此代码时:
x = 3; y = ++x - x++;
y的值为0
但对我来说,按照上表,结果应该是 y = (5 - 3) 因为 x++ 应该首先计算。
谁能解释为什么这是 y = 0 而不是 y = 2?
【问题讨论】:
-
运算符优先级不决定求值顺序。
-
我看到了这个关于What are the rules for evaluation order in Java? 的链接 嗯,有一个解释,但仍然不是 100% 清楚。让我换个方式问这个问题:什么时候在表达式的同一行上使用运算符优先级?或者为什么有运算符优先顺序以及何时使用?
-
postfix-notation 与此无关。
标签: operator-keyword operator-precedence postfix-operator prefix-operator