我知道这是超级基础,但有人可以解释为什么推出31?
var x = 1;
for (var i = 0; i < 4; i++) {
x += 5 * i;
}
console.log(x);
&#13;
答案 0 :(得分:1)
在循环开始之前,x为1。
第0次迭代:i为0,将5 * 0(0)添加到x。 x变为1。
第一次迭代:i为1,5 * 1(5)被添加到x。 x变为6。
第二次迭代:我将2,5 * 2(10)添加到x。 x变为16。
第三次迭代:i为3,5 * 3(15)被添加到x。 x变为31。
没有第四次迭代,因为for循环仅在i<4
时运行。
答案 1 :(得分:1)
运算符+=
将变量x
添加为自身的总和+另一个值。
x += 1
等于 x = x + 1
因此,该循环执行以下操作:
x = 1 = 1 <---- Initialization
x = 1 + 5 * 0 = 1 <---- Iteration 0
x = 1 + 5 * 1 = 6 <---- Iteration 1
x = 6 + 5 * 2 = 16 <---- Iteration 2
x = 16 + 5 * 3 = 31 <---- Iteration 3
答案 2 :(得分:1)
在这里,看一下:
var x = 1; // X= 1
for (var i = 0; i < 4; i++) {
// the below is actually x = (5 * i) + x;
x += 5 * i;
// LOG THE OUTPUT
console.log("At step " + i + ", X is = " + x);
}
console.log("Total: " + x);
// Want more? Here:
/*
At step 0, X = (5 * 0) + 1 => 1
At step 1, X = (5 * 1) + 1 => 5 + 1 => 6
At step 2, X = (5 * 2) + 6 => 10+16 => 16
At step 3, X = (5 * 3) + 16 => 15 + 16 => 31
*/
&#13;