Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的无限循环警报框_Javascript_Loops_Alert_Infinite - Fatal编程技术网

javascript中的无限循环警报框

javascript中的无限循环警报框,javascript,loops,alert,infinite,Javascript,Loops,Alert,Infinite,我的问题是,为什么我的“你明白了!”警报一直在无限地持续?我知道我可以让它在那里打破,但我想知道它为什么一直这样做。它应该有一个秘密的_number==答案,并打破while循环,所以很明显它没有这样做,我不明白为什么。谢谢:) var secret\u number=Math.floor((Math.random()*10)+1); var answer=parseInt(提示(“输入您想要尝试的数字”); while(秘密号码!==答案) { 如果(答案==null | |答案==“”| |

我的问题是,为什么我的“你明白了!”警报一直在无限地持续?我知道我可以让它在那里打破,但我想知道它为什么一直这样做。它应该有一个秘密的_number==答案,并打破while循环,所以很明显它没有这样做,我不明白为什么。谢谢:)

var secret\u number=Math.floor((Math.random()*10)+1);
var answer=parseInt(提示(“输入您想要尝试的数字”);
while(秘密号码!==答案)
{
如果(答案==null | |答案==“”| | isNaN(答案))
打破
如果(回答>密码)
回答=提示(“这个数字太高了!”);
else if(answer当您在while循环中再次设置“answer”时,您没有执行
parseInt
,因此该值现在是一个字符串,不等同于机密


问题在于,您没有一条规则来结束while循环并显示警报

要结束while循环,您的密码和答案必须相同(==),但要显示警报,您的答案不得大于或小于密码

若要修复,请解析提示,我将使用相同的规则显示警报并完成程序。甚至将警报置于while循环之外。

while(secret\u number!==answer)
更改为
while(secret\u number!=answer)

使用
parseInt
prompt(“此数字太高!”)
转换为int,然后将其分配给answer'answer=parseInt(prompt(“此数字太高!”);'


演示:

我们不是已经讨论了为什么
循环会导致无限循环,并在这篇文章中展示了正确的方法吗:我们在那篇文章中也讨论了良好的编码实践,但您似乎没有采纳任何建议。
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!");
}