let i = 500;do { if (isPrime(i) === false) { continue; } else { para.textContent += i + ', '; } i--;} while (i >= 2);如果我将(i--)移动到循环的开头,它效果很好。
2 回答

ibeautiful
TA贡献1993条经验 获得超5个赞
您的循环不断迭代 -
if (isPrime(i) === false) { //this condition will be true and code keeps looping because you never increment i continue; }
但是,在开始时声明的代码中,无论如何都会不断减少。因此,第一个程序将按预期成功运行,而在第二个程序中,执行永远不会超过第一个条件。i--
i
if()

忽然笑
TA贡献1806条经验 获得超5个赞
初始 i=500 ,进入循环
if (isPrime(i) === false) { continue; }
此条件满足,并转到下一个迭代 i 值是 500 永远
添加回答
举报
0/150
提交
取消