Java运营商,解释

时间:2014-08-29 10:16:44

标签: java operators

我知道有关x ++操作的几个问题,我知道++ x和x ++之间的区别。但现在我必须解决这个问题:

int x = 5;
x += x++ * x++ * x++;

嗯,我知道这不应该太困难,但是,我还需要解释一下这个计算器是如何完成的,一步一步,我不是自己得到它。

4 个答案:

答案 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

所以我认为我的解释是正确的。但我不是百分百肯定......