我开始学习编程,在课程的特定部分让我大吃一惊,在关于for循环的继续部分中,我被要求编写此代码的输出:
var sum=0;
for(i=4; i<8; i++) {
if (i == 6) {
continue;
}
sum += i;
}
document.write(sum);
无论出于什么原因,应该等于16,我只是想不明白为什么,谢谢你!
答案 0 :(得分:10)
让我们遵循它:
sum = 0
i = 4
。i < 8
是对的,因此循环继续进行(是的,此检查从一开始就发生)i == 6
为假,因此continue
不会发生sum += i
将sum
设置为4
i++
将i
设置为5
; i < 8
是正确的,所以循环继续进行i == 6
是错误的,因此continue
不会发生sum += i
将sum
设置为9
i++
将i
设置为6
i < 8
是正确的,所以循环继续进行i == 6
为真,因此continue
继续进行下一个循环迭代,跳过其余循环主体i++
将i
设置为7
i == 6
是错误的,因此continue
不会发生sum += i
将sum
设置为16
i++
将i
设置为8
i < 8
为假,因此循环停止步骤#12可能是最有趣的步骤:continue
跳过循环主体的其余部分,继续进行下一个循环迭代。有关continue
on MDN的更多信息。
将其放入另一种方式:循环将i
设置为4
,每个循环将i
递增一次,并在i < 8
期间继续。这意味着在循环体内,i
将是4
,然后是5
,然后是6
,然后是7
。在循环体中,sum += i
会在{{1}时将i
添加到sum
除之外的{em> ,因为i == 6
会跳过该部分。因此continue
发生在sum += i
,4
和5
中。由于7
从sum
开始,所以0
就是0 + 4 + 5 + 7
。
答案 1 :(得分:0)
这就是下面的循环
sum
是0
i(4)
之后添加到sum
i(5)
,因此sum
成为9
sum
不会添加任何内容,因为i=6
因此,continue
语句将在将i
添加到sum
之前执行。i(7)
被添加到求和中,结果变为16
。i<8
,所以最后添加的值是7