Javascript在while循环中计算多个条件
下面的代码应该一直要求用户从阵列中随机选择一种乐器,直到他们找到正确的为止。它应该计算猜测的数量,然后评估每个猜测,并确定它是按字母顺序高于还是低于随机数字。 由于某些原因,我的Javascript在while循环中计算多个条件,javascript,if-statement,while-loop,alert,Javascript,If Statement,While Loop,Alert,下面的代码应该一直要求用户从阵列中随机选择一种乐器,直到他们找到正确的为止。它应该计算猜测的数量,然后评估每个猜测,并确定它是按字母顺序高于还是低于随机数字。 由于某些原因,我的If语句似乎工作不正常。在示例中,如果我输入一个不在列表中的项目,代码将不会按预期返回1号警报。即使仪器输入正确,代码也不会返回任何信息,而不会返回预期的最后一次警报。非常感谢您的帮助 var MyInstrument; var guess_input_text; var guess_input; var fini
If
语句似乎工作不正常。在示例中,如果我输入一个不在列表中的项目,代码将不会按预期返回1号警报。即使仪器输入正确,代码也不会返回任何信息,而不会返回预期的最后一次警报。非常感谢您的帮助
var MyInstrument;
var guess_input_text;
var guess_input;
var finished = false;
var guess_counter = 0;
function My_instrument()
{
var instruments = ['violin', 'drums', 'pipe', 'harp', 'xylophone'];
instruments.sort();
var randomInstrument = Math.floor(Math.random()*instruments.length);
MyInstrument = instruments[randomInstrument];
while (!finished) {
guess_input_text = prompt("I'm thinking of one of these instruments \n"
+ instruments + "\n can you guess which one it is?"
);
var guess_input = instruments.indexOf(guess_input_text);
alert(guess_input);
guess_counter++;
finished = check_guess();
}
}
function check_guess()
{
if (guess_input == -1)
{
alert("you have not entered instrument from the list");
return false;
}
if (guess_input != -1 && guess_input_text > MyInstrument)
{
alert("your instrument is alphabetically higher than mine");
return false;
}
if (guess_input != -1 && guess_input_text < MyInstrument)
{
alert("your instrument is alphabetically lower than mine");
return false;
}
alert("You got it! The instrument was " + target +
".\n\nIt took you " + guess_counter + " guesses to get it!");
return true;
}
My_instrument();
var-MyInstrument;
变量猜测输入文本;
var-u输入;
var finished=false;
var_计数器=0;
函数My_instrument()
{
var乐器=[‘小提琴’、‘鼓’、‘管’、‘竖琴’、‘木琴’];
仪器。排序();
var randomInstrument=Math.floor(Math.random()*instruments.length);
MyInstrument=仪器[随机仪器];
当(!完成){
guess\u input\u text=prompt(“我正在考虑这些仪器中的一种\n”
+仪器+“\n您能猜出是哪一个吗?”
);
var guess\u input=instruments.indexOf(guess\u input\u text);
警报(猜测输入);
猜一猜计数器++;
完成=检查猜测();
}
}
函数检查_guess()
{
如果(猜测输入==-1)
{
警报(“您尚未从列表中输入仪器”);
返回false;
}
如果(猜测输入!=-1&&guess输入文本>我的仪器)
{
警惕(“你的乐器按字母顺序比我的高”);
返回false;
}
如果(猜测输入!=-1&&猜测输入文本
在检查猜测()中的最后一个警报中
目标
未定义
将其替换为MyInstrument
如果未获取guess\u输入变量,请重新初始化该变量,将其与函数一起传递或从函数内部删除var。控制台中是否出现任何错误?请注意,您不需要在第二个和后续的if条件中测试-1,因为如果是-1,则第一个if将捕获并返回该值。全局变量guess\u input
正在被同名的本地变量覆盖。请从此行中删除var<代码>变量猜测输入=仪器.indexOf(猜测输入文本)代码>您已经将其声明为全局变量。