繁体   English   中英

无限While循环mod 3

[英]Infinite While loop mod 3

我基本上只是想打印一个数字列表,跳过 3 的倍数。我让它工作了,但我尝试的最初方式不起作用,我不明白为什么,只需要有人解释为什么它不起作用工作并进入无限循环。

这就是问题,为什么会进入无限循环? 如果有人可以帮忙,我显然缺少一个关于代码的关键概念,谢谢。

var i = 0;
     while (i <= 10) {
         if (i % 3 == 0) {
            continue;
        }


       document.write( i + "</br>");
         i++;
        }

我知道你可以这样做。

while (i <= 10) 
{

     if (i % 3 != 0) {

        document.write("Number is " + i + "<br />");  

    }

   i++

 }

continue跳转到下一次迭代,并且不会在while完成其余代码。 所以i没有被递增,而是保持为 0 因为你在递增i之前写了continue 所以因此它处于无限循环中,它总是小于 10

如果我们忽略产生输出的代码而只查看代码检查和修改i ,它可能会变得更清楚为什么它不起作用。 它还有助于格式化我们的代码以使其更加清晰。

var i = 0;

while (i <= 10) {
  if (i % 3 == 0) {
    continue;
  }

  i++;
}
  • i = 0开始。
  • i <= 10true 进入循环。
  • i % 3 == 0true 输入if块。
  • continue; . 再次直奔while循环的顶部。 不要通过i++; . 不要收集1
  • 泡沫。 冲洗。 重复(无限)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM