首页 > 解决方案 > 为什么循环不在定义的停止点停止?

问题描述

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

“编写一个名为laugh() 的函数,它接受一个参数,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 < num并且num设置为16

标签: javascriptfunctionloopsfor-loop

解决方案


循环退出条件是i < num,所以当 i >= 16 代码string = string + "ha";没有执行


推荐阅读