小编pra*_*avi的帖子

这个 Java 程序中运算符优先级的逻辑有什么问题?

class Hello {
    public static void main(String args[]) {
        int i = 10;
        i *= i++ + i;
        System.out.println(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

根据运算符的优先级,后缀运算符的优先级高于乘法运算符。括号内的操作数具有更高的优先级。

首先评估它们: i*(i++ + i) 所以,现在,括号内是 10+11: i*(21)

i 的当前值为 11

其次,由于下一个优先级计算乘法运算符,它不应该是11*21=231吗?

虽然,我知道答案是 210,为什么我上面解释的逻辑是错误的?

java operator-precedence operator-keyword

0
推荐指数
1
解决办法
591
查看次数