我的问题是,为什么我的#34;你得到了它!"警报继续无限进行?我知道我可以让它在那里打破,但我想知道它为什么一直这样做。它应该有secret_number ===回答并突破while循环,所以很明显它没有这样做,我不明白为什么。谢谢:))
var secret_number=Math.floor((Math.random() * 10) + 1);
var answer=parseInt(prompt("Enter a number you want to try"));
while(secret_number!==answer)
{
if(answer == null || answer == "" ||isNaN(answer))
break;
if(answer>secret_number)
answer=prompt("This number is too high!");
else if(answer<secret_number)
answer=prompt("This number is too low!");
else
alert("You got it!");
}
答案 0 :(得分:1)
当您在while循环中再次设置“answer”时,您没有执行parseInt
,因此该值现在是一个字符串,并不等同于该秘密。
>
和<
在比较之前将两个值都转换为数字,因此如果您输入正确的数字,则会跳过这两个检查,但while条件始终为true。
答案 1 :(得分:0)
问题是你没有一条规则可以结束while循环并显示警告。
要结束while循环,您的密码和答案必须相同(===),但是要显示您回答的警报不得大于或小于密码。
要修复,请解析提示,我会使用相同的规则来显示警报并完成程序。甚至把警报放在while循环之外。
答案 2 :(得分:0)
将while(secret_number!==answer)
更改为while(secret_number!=answer)
或
使用prompt("This number is too high!")
将parseInt
转换为int,然后将其分配给答案&#39; answer = parseInt(提示符(&#34;此数字太高了!&#34;)); &#39;