我正试图在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")
}
}
};
答案 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;
}
}
};