初学者javascript for loop puzzle

时间:2018-03-14 01:40:18

标签: javascript loops

我是javascript的新手,想知道为什么我有四个返回值:

for(i=0; i < 10; i++) {
    i = i * i;
    console.log(i);
}
// 0
// 1
// 4
// 25

4 个答案:

答案 0 :(得分:3)

因为你在循环中设置了i的值。

最初i = 0;打印0x0 = 0; i = 0

下一次迭代i = 1;打印1x1 = 1; i = 1

下一次迭代i = 2;打印2x2 = 4; i = 4

下一次迭代i = 5;打印5x5 = 25; i = 25

我现在大于10,因此满足循环退出条件。

答案 1 :(得分:1)

执行此代码段以获得一些解释:

&#13;
&#13;
var iterations = ['First', 'Second', 'Third', 'Fourth']
var j = 0;
for (i = 0; i < 10; i++) {
  var iteration = iterations[j++];
    console.log(`${iteration} iteration with i = ${i} and multiplying ${i} x ${i} =`, i * i);
  i = i * i;

}
console.log(`The for-loop ends because i = ${i} > 10`);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
&#13;
&#13;

答案 2 :(得分:0)

循环逻辑出错。 由于循环将i的值设置为自身的乘积,因此循环的每次迭代都会重复增加:

  

i = i * i;

它使我大于10(在你的例子中为25)并终止循环。如果你创建了一个变量,比如j设置为i * i的乘积,那么它将循环10次。像这样:

for(i=0; i < 10; i++) {
    var j = i * i;
    console.log(j);
}

答案 3 :(得分:0)

由于您在for语句中设置的先前条件,循环中断; “ i <10”。通过在“ i = i * i”中为i分配新值,将覆盖增量值“ i ++”,从而提供了for循环。要更正此问题,请将“ i * i”乘积中的值分配给其他变量名,例如“ s = i * i”,这样就可以使循环完整完成。

相关问题