为了账号安全,请及时绑定邮箱和手机立即绑定

尝试限制猜测后javascript(html)while循环不起作用

尝试限制猜测后javascript(html)while循环不起作用

森林海 2023-05-25 16:24:06
我的主要目的是如果用户猜中数字 5 次或当用户猜对正确答案时停止程序,程序也应该结束。function abc(){    var guessbutton = document.getElementById("guessbutton");    var guess = document.getElementById("guess").value;    var maxtries = 5;    var count = 0;var secret = 10;    while (count < 6){if (guess == secret) {document.getElementById("feedback").innerHTML = "correct";guessbutton.disabled=true;break;}else if (guess > secret) {document.getElementById("feedback").innerHTML = "too high";}else if (guess < secret) {document.getElementById("feedback").innerHTML = "too low";}else{document.getElementById("feedback").innerHTML = "max try";guessbutton.disabled=true;break;}count++;}}我在使用这段代码时遇到的问题是,即使经过 5 次尝试,它仍会继续。我假设错误是由于count++;无法正常工作这是我的 html 代码<input id="guess" type="text" name="guess"><button id="guessbutton" type="button" onclick="return abc()">Guess</button><p id="feedback"></p>
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

您需要摆脱 while 循环。您只是循环而不允许用户更新输入文本框。您应该检查每次点击的次数。


var guessbutton = document.getElementById("guessbutton");

var count = 0;

var maxTries = 5;

var secret = 10;


function abc() {

  var guess = Number(document.getElementById("guess").value);

  count++;

  console.log(count);

  if (guess == secret) {

    document.getElementById("feedback").innerHTML = "correct";

    guessbutton.disabled = true;

  } else if (guess > secret) {

    document.getElementById("feedback").innerHTML = "too high";

  } else if (guess < secret) {

    document.getElementById("feedback").innerHTML = "too low";

  } 

  if (count >= maxTries) {

    document.getElementById("feedback").innerHTML = "max try";

    guessbutton.disabled = true;

  }

}

<input id="guess" type="text" name="guess">

<button id="guessbutton" type="button" onclick="return abc()">Guess</button>

<p id="feedback"></p>


查看完整回答
反对 回复 2023-05-25
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信