Javascript,关于无限循环提示和停止该循环

标签 javascript loops prompt

我是 javascript 新手,所以这就是我的背景故事 :) 这段代码不断使我的浏览器崩溃,并且如果我在第一次尝试时没有取消,无论我输入数字,它都不会让我取消提示或不......无论如何,即使游戏也行不通,这只是为了达到 secret 数字是人们猜测的数字的程度。为了取消提示,我什至尝试了 if(answer===null||answer===false||answer==="null") 休息;但这行不通。有人可以帮忙吗?谢谢。

这是我的代码:

<script>
var secret_number=Math.floor((Math.random() * 10) + 1); 
var answer=prompt("Enter a number you want to try");

while(secret_number!==Number(answer))
{
if(name===null||name===false||name==="null")
break;

if(Number(answer)>secret_number)
prompt("This number is too high!");

else if(Number(answer)<secret_number)
prompt("This number is too low!");

else
prompt("You got it!");
}

</script>

我有一个后续问题。我考虑了人们告诉我的内容并提出了这个:

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!");
}

我的问题是,我为什么会说“你明白了!”警报无限持续下去?我知道我可以让它在那里破裂,但我想知道为什么它总是这样做。它应该有那个 Secret_number===answer 并打破 while 循环,所以显然它没有这样做,我不明白为什么。再次感谢你。

最佳答案

您已经发现为什么 while 循环可能很危险。这里最好的解决方案是限制用户的猜测数量,为此,您需要一个在循环内递增的计数器,并且可以简单地使用 for 循环来完成。

此外,使用大括号括住 if 分支。

最后,将字符串转换为数字的最佳方法是使用 parseInt()parseFloat()。当您获得字符串时就进行正确的转换,这样您就不必每次要使用它时都进行转换。

var secret_number = Math.floor((Math.random() * 10) + 1);
alert("For testing only: The secret number is: " + secret_number);
var answer = parseInt(prompt("Enter a number you want to try"), 10);

const GUESSES = 3;

for(var i = 0; i < GUESSES; ++i){
  if(!isNaN(answer)){
    
    if(answer > secret_number) {
      answer = prompt("Try again...This number is too high! (" + (GUESSES - i - 1) + " guesses left.)");
    } else if(answer < secret_number) {
      answer = prompt("Try again...This number is too low! (" + (GUESSES - i - 1) + " guesses left.)");
    } else {
      alert("You got it!");
      break;
    }
  } else {
    alert("You didn't enter a number!");
    break;
  }
    
}

关于Javascript,关于无限循环提示和停止该循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41970711/

相关文章:

javascript 一键提交多个表单

javascript - 您如何通过单击 JQuery 按钮来提取 ID 数据?

c - 迭代 argv[] 会产生段错误

python - 计算python中值的重复出现

powershell - cmd.exe 和 PowerShell 中提示的颜色(只是提示正确)?

Javascript prompt() - 取消按钮以终止函数

java - 找不到符号 : . getRuntime()

javascript - 检测网站是否在 Windows 窗体中使用 webview 运行

javascript - 第二次点击平板电脑时触发下拉导航链接

php - 为学生分配职位,PHP