为什么循环未在定义的停止点停止?

时间:2018-11-09 03:36:18

标签: javascript function loops for-loop

我正在为在线课程进行测验,测试对循环的理解。问题是:

“编写了一个名为笑()的函数,该函数带有一个参数,num表示要返回的“ ha”的数量。这样console.log(laugh(3));打印出"hahaha!"”,我使用以下循环解决了此问题:

function laugh(num) {
  var string = ""
  for (var i = 0; i < num; i++) {
    string = string + "ha";
  }
  return string + "!";
}
console.log(laugh(3));

但是出于好奇,我增加了num并使循环返回i而不是字符串:

function laugh(num) {
  var string = "";
  for (var i = 0; i < num; i++) {
    string = string + "ha";
  }
  return i;
}

console.log(laugh(16))

已打印16。现在我很困惑-i不应仅到达15,因为循环的条件之一是i < numnum被设置为16

4 个答案:

答案 0 :(得分:0)

循环退出条件为BEGIN DISTRIBUTED TRANS UPDATE STATION_TEST.YourDatabaseName.dbo.deslocal ... SELECT * FROM STATION_TEST.YourDatabaseName.dbo.deslocal WHERE COMMIT TRANS ,因此当i> = 16代码i < num未执行时

答案 1 :(得分:0)

在for循环中,首先检查该条件后执行增量。因此,当“ i”增加到15时,它将检查15 <16,为true,因此继续其余代码。 之后,“ i”增加到16并检查16 <16,为false,因此从循环中出来。

因此,如果您打印“ i”,那么它将打印“ i”的当前值为16

答案 2 :(得分:0)

i的值从0开始,然后检查它是否小于16,最后将其增加1。在最后一次迭代中,i为15。满足小于15的条件,然后递增。现在,i为16,且不小于16,因此for循环以i等于16结束。

答案 3 :(得分:0)

请参阅,您从0开始的i。逐步遍历循环。它将针对i = 0、1、2、3 ... 15执行。但是现在您看到,循环执行的是 0 。因此,对于任何形式的循环(int i = 0; i