首页 > 解决方案 > 这个 For 循环怎么会以这种方式递增?(似乎指数)

问题描述

Javascript新手在这里。我正在自学,现阶段正在学习 For Loops。我正在通过调整 Youtube 教程中的简单示例来玩弄它。我做的一个让我有点困惑:

for (i = 0; i <=7; i+=1) {
    console.log(i);
    i += i;
    console.log(i);
}

它打印出这个输出

鉴于我有两个 console.logs,我知道我需要分别查看两组数字。0,1,3,7 和 0,2,6,14。在这里,我在结果中看到了一些模式。数字递增 2^0,然后是 2^1,然后是 2^2,然后是 2^3,以此类推

我已经被困了一段时间才能理解这一点。但我真的不明白我的代码是如何导致这种情况发生的。所以我真的很感激任何帮助分解代码来解释模式。

标签: javascriptloopsfor-loop

解决方案


展开循环以说明其他人在评论中已经指出的内容。您正在i通过循环增量(如您应该)递增,但每次在循环内也将其加倍。从这个角度来看,这是正在发生的事情i

i = 0; // loop initialization
console.log(0);
i = 0 + 0;
console.log(0);
i = 0 + 1; // loop increment
console.log(1);
i = 1 + 1;
console.log(2);
i = 2 + 1; // loop increment
console.log(3);
i = 3 + 3;
console.log(6);
i = 6 + 1; // loop increment
// ...


推荐阅读