javascript中的无限循环警报框

时间:2017-02-01 22:34:05

标签: javascript loops alert infinite

我的问题是,为什么我的#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!");
}

3 个答案:

答案 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;

演示:https://jsfiddle.net/cnvm19ha/