[英]Can't understand this for loop in javascript
我知道这在这里非常基本,但有人可以解释为什么会推出 31 吗?
var x = 1; for (var i = 0; i < 4; i++) { x += 5 * i; } console.log(x);
在循环开始之前,x 为 1。
第零次迭代:i 为 0,将 5 * 0 (0) 添加到 x。 x 变为 1。
第一次迭代:i 为 1,将 5 * 1 (5) 添加到 x。 x 变为 6。
第二次迭代:i 为 2,将 5 * 2 (10) 添加到 x。 x 变为 16。
第三次迭代:i 为 3,将 5 * 3 (15) 添加到 x。 x 变为 31。
没有第四次迭代,因为 for 循环只在i<4
运行。
运算符+=
将变量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
在这里,看看这个:
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 */
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.