我知道有关x ++操作的几个问题,我知道++ x和x ++之间的区别。但现在我必须解决这个问题:
int x = 5;
x += x++ * x++ * x++;
嗯,我知道这不应该太困难,但是,我还需要解释一下这个计算器是如何完成的,一步一步,我不是自己得到它。
答案 0 :(得分:8)
您的代码相当于:
int x = 5;
int originalX = x;
int a = x++;
int b = x++;
int c = x++;
x = originalX + a * b * c;
System.out.println("x = " + x); //215
答案 1 :(得分:2)
x += x++ * x++ * x++;
可以写成:
x = x+ x++ * x++ * x++;
如何评估?
x= 5+(5 * 6 * 7)
,因为您使用的是postfix。因此,x
的递增值将从第二次使用时可见。
So, final output = 5+ (5*6*7) == 215
答案 2 :(得分:1)
x ++意味着读取值并在引用的位置使用它,然后递增它。
所以在你的问题中: -
int x = 5;
x = 5 + 5 * 6 * 7
x += x++ * x++ * x++;
x = 215
答案 3 :(得分:1)
int x = 5;
x += x++ * x++ * x++;
首先,设置一些括号以更好地查看计算顺序:
x += ((x++ * x++) * x++);
然后,用它的值替换x的第一次出现,计算并继续用更新的值替换:
5 += ((x++ * x++) * x++);
5 += ((5 * x++) * x++);
5 += ((5 * 6) * x++);
5 += ((5 * 6) * 7);
5 += 210;
现在,这是简单的数学......
结果应该是:215
我的编译给了我:215
所以我认为我的解释是正确的。但我不是百分百肯定......