我正在为在线课程进行测验,测试对循环的理解。问题是:
“编写了一个名为笑()的函数,该函数带有一个参数,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
?
答案 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