2016-01-22 39 views
-1

我尝试运行下面的代码,但它不会工作,并且它好像进入了一个无限循环。你们有没有看到这有什么问题?看起来像一个无限循环的代码问题

var myBool = true 
for(var i=0;i<10;i++){ 
    console.log("Jippi " + i) 
    if(i===5) { 
     myBool = false; 
     console.log("!!!") 
     } 

    do { 
     console.log("While er fortsatt med") 

} while(myBool==true); 
} 

我刚开始学习javascript,想混用-for,-if,-do和-while语句。你们有没有看到这有什么问题?我没有得到任何错误。

回答

0

这是一个简单的逻辑错误。让我们逐步了解您的代码。

​​

每当你指的myBool,你会得到 “真”。

for(var i=0;i<10;i++){

你已经设置了一个循环,将执行10次,禁止任何指令,在循环体相反。

在第一次循环(称为第一循环迭代),你会做

console.log("Jippi " + i)

这将打印“Jippi 0”到日志中。

if(i===5) {

i此时的值是0,所以我们跳过什么是这里的括号内。

do {

这一切执行随之而来的至少一次

console.log("While er fortsatt med")

这将打印 “虽然ER fortsatt配有” 到日志中。

} while(myBool==true);

这就建立了一个循环。在这一点上,myBool是真实的,所以你回到大括号do后:

{ 
    console.log("While er fortsatt med") 
} 

再次,您打印“虽然ER fortsatt配有”到日志中。

myBool仍然如此,所以你只是不断重复console.log声明。

我不确定你在做什么,但为了消除这里的无限循环,你只需要删除“do-while”循环。

+0

很好的解释。谢谢:-) – Carl