Codeproblem似乎是一个无限循环

时间:2016-01-22 16:21:42

标签: javascript

我尝试运行以下代码,但它不会工作,似乎它进入无限循环。你们有没有看到这个有什么问题?

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语句。你们有没有看到这个有什么问题?我没有收到任何错误。

1 个答案:

答案 0 :(得分:0)

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

var myBool = true

每当您引用myBool时,您都会得到&#34; true&#34;。

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

您已经设置了一个执行10次的循环,除非循环体中有任何相反的指示。

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

console.log("Jippi " + i)

这将打印&#34; Jippi 0&#34;到日志。

if(i===5) {

此时i的值为0,所以我们跳过括号内的内容。

do {

这将至少执行一次

console.log("While er fortsatt med")

这将打印&#34;而er fortsatt med&#34;到日志。

} while(myBool==true);

这会设置一个循环。此时,myBool为真,所以你回到do之后的大括号:

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

再一次,你打印&#34;而呃fortsatt med&#34;到日志。

myBool仍然是正确的,因此您只需重复console.log语句。

我不确定你要完成什么,但要消除这里的无限循环,你只需要删除&#34; do-while&#34;循环。