【发布时间】:2018-11-09 03:36:18
【问题描述】:
我正在为一个在线课程做一个测验,测试对循环的理解。问题是:
“编写一个名为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?
【问题讨论】:
-
测试发生在 增量之后。
-
不,@Plotisateur,后置或前置增量对这段代码没有任何影响
-
@Plotisateur 即使是预增量 (
++i),效果也是一样的 - 在final-expression部分完成后检查“测试”部分完成. -
假设
i等于 15,那么条件15 < 16将为真,并且您肯定仍处于循环中。所以该方法不可能返回 15。当i达到16的值时,循环结束(因为16 < 16是false)并返回该值。
标签: javascript function loops for-loop