我有一个单行代码,
int a = 10;
a = ++a * ( ++a + 5);
我的预期输出是 12 * (11 + 5) = 192
,但我得到了 187。据我所知,()
里面的自增算子要先解决,那为什么外面的先解决呢?
最佳答案
表达式从左到右计算。括号(和优先级)只是表示分组,它们不表示评估的顺序。
所以
11 * (12 + 5)
++a ++a
等于
187
关于java - 如果括号具有更高的优先级,那么为什么首先解决增量运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28219423/