0

好吧,我正试图在 java 脚本中编写一个 for 条件,但突然发生了 3 到 4 次而不是一次,我首先定义了两个变量,然后编写了一个 for 代码,我在其中嵌套了 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")
        }
    }
};
4

3 回答 3

2

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

if (myVariable1 === xuv[i])

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

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

于 2013-10-14T18:39:07.863 回答
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");
    }
};

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

于 2013-10-14T18:39:33.787 回答
0

因为您在循环中比较相同的索引,所以条件总是为真并且它的警报,即使条件失败,它也会发出 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;
        }
    }
};
于 2013-10-14T18:42:46.787 回答