在javascript中无法理解这个循环

时间:2018-03-06 19:39:50

标签: javascript for-loop

我知道这是超级基础,但有人可以解释为什么推出31?



var x = 1;
for (var i = 0; i < 4; i++) {
  x += 5 * i;
}
console.log(x);
&#13;
&#13;
&#13;

3 个答案:

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

在这里,看一下:

&#13;
&#13;
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;
&#13;
&#13;