Javascript猜测游戏 - 计数器不工作

时间:2016-05-12 18:09:03

标签: javascript

我正在尝试创建一个Javascript猜谜游戏,用户有10次尝试猜测1-999之间的数字。我必须使用验证号码,使用循环并在用户获得匹配时显示警报,以及何时用尽猜测。使用数字45仅用于测试。应使用innerHTML对每个猜测进行编号和显示。问题是,计数器停留在零。不知道我错过了什么!代码如下:

function myFunction() {
  var userInput = document.getElementById("input").value;
  var randomNum = 45;
  // test for valid input number from 1 to 999
  if (userInput < 0 || userInput > 999) {
    alert("Your number must be from 1 to 999");
  } else {
    alert("Input OK");
  }
  var counter = 0;
  while (counter < 10) {
    counter++;
    if (userInput == randomNum) {
      alert("You win!");
    }
    if (userInput > randomNum) {
      document.getElementById("loopResults").innerHTML += counter + "." + " Your answer: " + userInput + "." + " Guess lower! < br / > ";
      alert("You have " + counter + " guesses left.");
    } else if (userInput < randomNum) {
      document.getElementById("loopResults").innerHTML += counter + "." + " Your answer: " + userInput + "." + "Guess higher! < br / > ";
      alert("You have " + counter + " guesses left.");
    }
    break;
  } // end while loop
} // end function myFunction()

3 个答案:

答案 0 :(得分:3)

这一行

var counter = 0;
每次调用函数时,

将计数器重置为0。一个修复可能是以这种方式将其设置为全局变量

counter = 0; // note no var keyword
function myFunction() {...}

然后你在函数中对counter的调用将引用全局变量。

另外,你的while循环没有意义。它应该是一个简单的if语句来查看counter&gt; = 10.在正确设置计数器变量后想一想这个逻辑。

答案 1 :(得分:1)

逐步执行while循环中的逻辑。

每个循环中递增的计数器变量已经导致循环退出。

在while循环结束时设置“break”意味着您可以保证在第一次

之后退出

答案 2 :(得分:1)

当你想要退出时,只有break你的循环。在您的情况下,这可能是用户猜到了数字或没有尝试。

break命令立即结束循环。有关详细信息,请查看the MDN docs