对于无限循环

时间:2013-10-14 18:34:38

标签: javascript

我正试图在java脚本中写一个for条件突然发生这种情况我开始得到消息3到4次而不是一次我第一次定义两个变量然后写了一个代码我嵌套和if else语句,然后关闭所有这些,但它发生了无限循环创建。我尝试了以下: -

function setValue(){
    myVariable1= document.forms["myform"]["ram"].value;
    var xuv = ["go", "no", "yes"];

    for (i=0;i<xuv.length;i++)
    {
        if (myVariable1 === xuv[0])
        {       
            alert("yes this game can run")
        }
        else 
        {       
            alert("No, This game cannot run")
        }
    }
};

3 个答案:

答案 0 :(得分:2)

我认为你的意思是索引数组:

if (myVariable1 === xuv[i])

目前,您只需在循环的每次迭代中检查xuv[0]。因此,如果xuv[0]满足您的条件且循环迭代几次,您将会多次看到您的消息。如果它没有,你将永远不会看到它。

如果是无限循环,那么你永远不会停止看到它......

答案 1 :(得分:0)

function setValue(){
    myVariable1= document.forms["myform"]["ram"].value;
    var xuv = ["go", "no", "yes"];
    var canRun = false; //i asume the programm can't run

    for (i=0;i<xuv.length;i++)
    {
        if (myVariable1 === xuv[i]) //changed from 0 to i here
        {   
            //but when my input is in the array it can run
            canRun = true;  
        }
    }

    if (canRun)
    {   
        alert("yes this game can run");
    }
    else 
    {       
        alert("No, This game cannot run");
    }
};

您的问题是,如果输入为go,则您检查了3次。 我认为你要做的是检查你的输入是否在数组中。 您还想打印一个警报,我在循环后的if-block中执行该警报

答案 2 :(得分:0)

因为您在循环中比较相同的索引,所以条件总是变为true并且它的警报,即使条件失败,它也会警告3次,直到您中断循环或它达到停止条件:

function setValue(){
    var myVariable1= document.forms["myform"]["ram"].value;//add var otherwise it would expect it as global
    var xuv = ["go", "no", "yes"];

    for (var i=0;i<xuv.length;i++)
    {
        if (myVariable1 === xuv[i]) //changed from 0 to i here
        {       
            alert("yes this game can run");
            return;
        }
        else 
        {       
            alert("No, This game cannot run");
            return;
        }
    }
};