while循环内部for循环不起作用

时间:2017-03-22 18:12:29

标签: javascript

我尝试在for循环中使用while循环,但每当我尝试这样做时,我的浏览器崩溃了。我知道当循环无限时会发生这种情况,但我似乎无法弄清楚原因。

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

4 个答案:

答案 0 :(得分:4)

你永远循环while循环,因为i保留了值,并且永远不会在里面更改。

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

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

答案 1 :(得分:3)

The problem is the while loop, once i becomes 0, it will never come out of the while loop.(Since it is less than 2)

Possible solutions:

SOLUTION 1: Remove the while loop present inside the for loop

SOLUTION 2: Handle inside the while, and break after doing something

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

SOLUTION 3: Change the value of i >=2 inside the while loop, so that, the loop breaks

答案 2 :(得分:1)

发生的事情是你的while循环永无止境; i的值永远不会在循环内部发生变化,因此循环会永远持续下去。

当我在for循环中&lt;时,你想要做的就是记录消息“它是我”。 2.在这种情况下,您可以使用简单的if语句,以便您的代码读取如下内容:

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

我建议使用数值并进行测试,以更好地了解JS语法的工作原理。

答案 3 :(得分:0)

   for(i=0;i < 2; i++)
    {
      console.log("hello");
      while(i < 2)
      {
     //Once this block is entered, value of i is never changed and the condition
     //is always true.
        console.log("it's me");
      }
    }

如果要在while部分循环,请使用secon变量将其更改为以下内容。

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