为什么这个 javaScript 代码会创建一个无限循环

Why does this javaScript code create an infinite loop

let i = 500;
do {
    if (isPrime(i) === false) {
        continue;
    } else {
        para.textContent += i + ', ';
    }
    i--;
} while (i >= 2);

如果我将 (i--) 移动到循环的开头,效果很好。

初始i=500,进入循环

if (isPrime(i) === false) {
        continue;
    }

这个条件满足,进入下一次迭代i值永远为500

您的循环在 -

处不断迭代
if (isPrime(i) === false) {  //this condition will be true and code keeps looping because you never increment i
    continue;
}

但是,在您开头声明 i-- 的代码中,无论如何 i 都会不断减少。所以第一个会运行如预期的那样成功,而在第二个程序中,执行永远不会超出第一个if()条件。