javascript - 为什么这个javascript代码会创建一个无限循环
问题描述
let i = 500;
do {
if (isPrime(i) === false) {
continue;
} else {
para.textContent += i + ', ';
}
i--;
} while (i >= 2);
如果我将 (i--) 移到循环的开头,它会很好地工作。
解决方案
您的循环不断迭代 -
if (isPrime(i) === false) { //this condition will be true and code keeps looping because you never increment i
continue;
}
但是,在您i--
一开始声明的代码中,i
无论如何都会不断减少。所以第一个程序会按预期成功运行,而在第二个程序中,执行永远不会超出第一个if()
条件。
推荐阅读
- tensorflow - 张量流 HamiltonianMonteCarlo 中的梯度函数和质量矩阵
- twilio - 参与者如何成为 Twilio 中多个对话的一部分
- javascript - 需要使用 node js 忽略一些目录
- javascript - 如何在只能通过当前网络访问的域上执行 SSL?
- javascript - CSS 打印:避免页面之间的半切表?
- amazon-athena - 从超集连接到 Athena 时出现错误代码 422
- sql - 计算特定周的非活动用户(Postgresql)
- matplotlib - 如何使用contourf(matplotlib)复制imshow质量?
- javascript - 获取任意网页点击图片时的完整图片路径
- linux - 即使在 PATH 中也找不到 Docker Alpine 可执行二进制文件