虽然for循环内部的循环无法正常工作

问题描述:

我试图在for循环中使用while循环,但是每次尝试时都会导致浏览器崩溃。我知道这发生在循环无限时,但我似乎无法弄清楚为什么。虽然for循环内部的循环无法正常工作

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

由于'i'在while循环中没有改变,这个循环永远不会停止。 – Titus

+1

你什么时候预期'while'循环停止?你是不是指“如果”?或者你想要什么样的整体调音台输出? – Bergi

+1

它永远不会停止,因为我永远不会在循环中超过2,并且您的浏览器将无响应。 –

问题是while循环,一旦i变为0,就再也回不来了while循环的(因为它是小于2)

可能的解决方案:

解决方案1 ​​:删除循环目前循环

SOLUTION 2:处理而内部,并且做一些

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

解决方案3之后打破:更改I的> = 2的while循环中的值,使得在环断裂

+0

感谢伟大的解释,没有想过while循环被卡住,所以我不会++ –

发生什么事是你的while循环永远不会结束;我的价值永远不会在循环内部发生变化,所以循环会一直持续下去。

也许你在做的是记录消息“这是我”,当我,在for循环,是< 2.在这种情况下,你可以使用一个简单的if语句,这样你的代码读取类似这个:

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

我建议玩弄数字值并测试它以获得更好的JS语法工作方式。

您永远循环while循环,因为i保持该值并且永远不会在内部进行更改。

我想你可能会使用更好的if语句来获得额外的输出。

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

+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"); 
     } 
    } 

将其更改为类似下面使用塞康变量,如果要循环中,而部分。

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