我遇到了这个问题in this website,并在Eclipse中尝试过,但无法理解它们的评估方式。a + = a ++ * a ++ * a ++ in Java。它如何得到评估?
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),其结果是正确的。我想我错过了这个运算符的优先级。
'X + = 3 * 4 * 5; = 3 + 60 = 63'; 'y = 7 * 7 = 49','z = 4 + 5 = 9' – NullUserException
为什么这会被投票结束为一个C++问题的重复? – NullUserException
(我同意NullUserException - C/C++对于处理这个相同的结构有不同的*规则,但是它恰好在Java下很好定义,如果不是丑陋的话。) – 2012-11-13 22:08:27