你能一步步解释一下java是如何评估的吗
1) y 的值?
int x = 5;
int y = x-- % x++;
2)这种情况下y的值?
int x = 5;
int y = x-- * 3 / --x;
好吧,操作数是从左到右计算的,并且在每种情况下都是 a 的结果postfix运算是递增/递减之前变量的值,而 a 的结果prefix操作是变量的值after增量/减量...所以你的情况看起来像这样:
Case 1:
int x = 5;
int tmp1 = x--; // tmp1=5, x=4
int tmp2 = x++; // tmp2=4, x=5
int y = tmp1 % tmp2; // y=1
Case 2:
int x = 5;
int tmp1 = x--; // tmp1=5, x=4
int tmp2 = 3;
int tmp3 = --x; // tmp3=3, x=3
int y = tmp1 * tmp2 / tmp3; // y = 5
就我个人而言,我通常会尝试避免在更大的表达式中使用前/后增量表达式,并且我会当然避免这样的代码。我发现将副作用表达式放在单独的语句中几乎总是更清晰。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)