Javascript 而for循环中的循环不起作用

Javascript 而for循环中的循环不起作用,javascript,Javascript,我尝试在for循环中使用while循环,但每次尝试这样做时,我的浏览器都会崩溃。我知道循环无限大时会发生这种情况,但我似乎不明白为什么 for(i=0;i < 2; i++) { console.log("hello"); while(i < 2) { console.log("it's me"); } } (i=0;i

我尝试在for循环中使用while循环,但每次尝试这样做时,我的浏览器都会崩溃。我知道循环无限大时会发生这种情况,但我似乎不明白为什么

for(i=0;i < 2; i++)
{
  console.log("hello");
  while(i < 2)
  {
    console.log("it's me");
  }
}
(i=0;i<2;i++)的

{
console.log(“你好”);
而(i<2)
{
log(“是我”);
}
}

发生的是你的while循环永远不会结束;i的值在循环中从不改变,因此循环将永远持续

也许你想做的是在for循环中,当我<2时,记录消息“是我”。在这种情况下,您可以使用一个简单的if语句,这样您的代码可以如下所示:

for(var i=0;i<2;i++){
 console.log("hello");
 if(i<2) console.log("it's me");
}

for(var i=0;i将永远循环while循环,因为
i
保留该值,并且在内部从未更改

我认为您可以使用更好的if语句来获得额外的输出

vari;
对于(i=0;i<2;i++){
console.log(“你好”);
如果(i<2){
log(“是我”);
}
}
用于(i=0;i<2;i++)
{
console.log(“你好”);
而(i<2)
{
//一旦输入该块,i的值将永远不会改变,条件也不会改变
//这永远是真的。
log(“是我”);
}
}
如果要在while部分中循环,请使用secon变量将其更改为如下内容

 for(i=0;i < 2; i++)
        {
          console.log("hello");
           j=0;
          while(j < 2)
          {
          j++;
            console.log("it's me");
          }
      }
(i=0;i<2;i++)的

{
console.log(“你好”);
j=0;
而(j<2)
{
j++;
log(“是我”);
}
}

问题在于while循环,一旦
i
变为0,它就永远不会从while循环中出来。(因为它小于2)

可能的解决方案:

解决方案1:移除,而循环中存在

解决方案2:在中间处理,在做某事后中断

     for(i=0;i < 2; i++)
        {
          console.log("hello");
          while(i < 2)
          {
            console.log("i  < 2");
            break;
          }
        }
(i=0;i<2;i++)的

{
console.log(“你好”);
而(i<2)
{
控制台日志(“i<2”);
打破
}
}

解决方案3:在while循环中更改i>=2的值,这样循环就会中断

,因为
i
while
循环中没有更改,所以这个循环永远不会停止。您希望
while
循环什么时候停止?您是指
if
?还是希望控制台的总体输出是什么?它是n曾经停止过,因为我在你的循环中永远不会大于2,你的浏览器将变得无响应。你需要将“while”更改为“if”,然后它可能会执行你想要的操作…谢谢伙计们,我想我可以使用for循环中的i。感谢伟大的解释,我没有想过while循环会被卡住,所以我不会++
     for(i=0;i < 2; i++)
        {
          console.log("hello");
          while(i < 2)
          {
            console.log("i  < 2");
            break;
          }
        }