以下代码中x的值是什么?
int x=15;
x %= x++ + +x - 3
请解释原因。
为什么它没有给出+x
或前面的多余+
的语法错误?
答案 0 :(得分:1)
x %= (x++) + (+x) - 3;
x++
称为后增量。 You can check this post.
+x
只是一个符号运算符。
所以您的陈述将评估为:
x %= (15) + (+16) - 3;
答案 1 :(得分:0)
您可以将代码分成如下部分,以了解其工作原理:
int x = 15;
int y = x++ + +x;
System.out.println(y); //result: 31 (x = 15, then incremation so it is 15 + 16)
System.out.println(x); //result: 16 because of previous incrementation
y = y - 3;
System.out.println(y); //result: 31 - 3 = 28
x %= y;
System.out.println(x); //result: 16 % 28 = 16