我在这个网站上遇到了这个问题,并在 Eclipse 中尝试过,但不明白它们是如何被评估的。
int x = 3, y = 7, z = 4;
x += x++ * x++ * x++; // gives x = 63
System.out.println(x);
y = y * y++;
System.out.println(y); // gives y = 49
z = z++ + z;
System.out.println(z); // gives z = 9
根据网站上的评论, x += x++ * x++ * x++ 解析为 x = x+((x+2)*(x+1)*x) ,事实证明这是真的。我想我错过了关于这个运算符优先级的一些东西。