这是我的代码:
len(x)
输出:var x = 3;
var y = x++;
y += 1;
我知道计算机正确,但是我不确定为什么计算机正确。 从 x 为 y 分配了值 3 ,然后在第2行中将其递增为 4 。第3行的输出应该是 5 ,对吗?
根据我的阅读,在增加发生之前,已为 y 分配了 x 的值,但是当发生这种情况时,为什么 y 不变吗?
答案 0 :(得分:3)
在分配y = x++;
中,首先将 y 的值分配给 x ,然后将变量 x 递增1通过执行此操作, y 变为3,x为4。然后在运行y + = 1后,计算机将计算3 + 1 = 4
如果您期望 y 为5,则应该进行y = ++x;
。这样, x 首先将增加1,然后分配给 y ,因此我们将在y + = 1(4 + 1)之后得到y = 4和x = 4 = 5)
答案 1 :(得分:1)
预递增(++x
)和后递增(x++
)之间是有区别的。
预增运算符用于在表达式中使用变量之前将其值递增。在预递增中,值首先递增,然后在表达式内部使用。假设我们有:
a = ++x;
在这里,如果“ x”的值为10,则“ a”的值为11,因为在表达式中使用“ x”之前会对其进行修改。这等效于:
x = x + 1;
a = x;
使用后递增运算符可在完全执行使用后递增的表达式后,递增变量的值。在后递增中,值首先在表达式中使用,然后递增。假设我们有:
a = x++;
在这里,假设'x'的值为10,则变量'a'的值为10,因为使用了'x'的旧值。这等效于:
a = x;
x = x + 1;
您可以在实习生那里了解更多相关信息(例如here或here)。
干杯!
// Post-increment example
console.log("post-increment examples");
let x = 10;
a = x++;
console.log(x, a);
x = 10;
a = x;
x = x + 1;
console.log(x, a);
// Pre-increment example
console.log("pre-increment examples");
x = 10;
a = ++x;
console.log(x, a);
x = 10;
x = x + 1;
a = x;
console.log(x, a);
答案 2 :(得分:0)
x++
返回值,然后加1。请参见:
var x = 3;
var y = x++;// x return 3 and then add 1, y is 3
y += 1;//3 + 1 = 4
console.log(y)
console.log(x)//x return 4