Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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 - Fatal编程技术网

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

Javascript猜测游戏-计数器不工作,javascript,Javascript,我正在尝试创建一个Javascript猜测游戏,其中用户有10次尝试猜测1-999之间的数字。我必须使用一个验证数字的方法,使用一个循环并在用户获得匹配项时显示警报,以及当他们猜不到时显示警报。使用数字45只是为了测试。应使用innerHTML对每个猜测进行编号和显示。问题是,计数器卡在零位。不知道我错过了什么!代码如下: function myFunction() { var userInput = document.getElementById("input").value; var

我正在尝试创建一个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()
函数myFunction(){
var userInput=document.getElementById(“输入”).value;
var-randomNum=45;
//测试1到999之间的有效输入号码
如果(用户输入<0 | |用户输入>999){
警报(“您的号码必须在1到999之间”);
}否则{
警报(“输入正常”);
}
var计数器=0;
while(计数器<10){
计数器++;
if(userInput==randomNum){
警惕(“你赢了!”);
}
如果(用户输入>随机数){
document.getElementById(“loopResults”).innerHTML+=counter++“您的答案:“+userInput++”猜得更低!
”; 警惕(“你还有“+计数器+”猜测。”); }else if(用户输入<随机数){ document.getElementById(“loopResults”).innerHTML+=counter++“您的答案:“+userInput++”猜得更高!
”; 警惕(“你还有“+计数器+”猜测。”); } 打破 }//在循环结束时结束 }//结束函数myFunction()
逐步完成while循环中的逻辑

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


在while循环结束时设置“break”意味着您保证在while循环中的逻辑执行第一步后退出

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


在while循环结束时设置一个“break”意味着您保证在第一次循环结束后退出,只有当您真正想退出循环时才退出循环。在您的情况下,这可能是当用户猜到数字或尝试不足时


break
命令立即结束循环。查看更多信息

只有当您真正想退出循环时才将其打断。在您的情况下,这可能是当用户猜到数字或尝试不足时

break
命令立即结束循环。查看更多信息

这条线

var counter = 0;
每次调用函数时将计数器重置为0。一种修复方法是以这种方式将其设置为全局变量

counter = 0; // note no var keyword
function myFunction() {...}
然后,对函数中计数器的调用将引用全局变量

此外,您的while循环没有意义。它应该是一个简单的if语句,以查看计数器>=10。正确设置计数器变量后再考虑此逻辑。

此行

var counter = 0;
每次调用函数时将计数器重置为0。一种修复方法是以这种方式将其设置为全局变量

counter = 0; // note no var keyword
function myFunction() {...}
然后,对函数中计数器的调用将引用全局变量



此外,您的while循环没有意义。它应该是一个简单的if语句,以查看计数器>=10。在正确设置计数器变量后考虑此逻辑。

break
结束
while
循环。始终应该考虑将其放在何处/将中断放在末尾的else中。中断不是最大的问题,函数作用域中的计数器变量是。
break
ends
while
loop。你总是应该考虑把它放在哪里/把中断放在最后的一个else中。中断不是最大的问题,函数作用域的计数器变量才是。谢谢!这有助于使计数器朝着正确的方向移动。谢谢!这有助于使计数器朝着正确的方向移动。谢谢!问你一个问题……我在最后加上了休息时间,因为否则,所有的警报都会一个接一个地弹出,不会停下来再猜一次。不知道如何让它重新开始?您可能希望为用户嵌入另一个机会来输入猜测,以便您可以重新检查条件。我想如果你还有猜测,检查他们是否猜对了,如果没有,告诉他们还有多少猜测,并再次提示他们交替输入一个数字,你可以在没有while循环的情况下分离游戏逻辑。输入猜测后,检查计数器变量和增量。有一个条件,如果他们达到计数器限制,你就告诉他们他们损失了TBTW。如果这有帮助,我将感谢你标记为已解决:)当然!只需找出在何处执行此操作…此网站仍然是新网站。:)谢谢谢谢问你一个问题……我在最后加上了休息时间,因为否则,所有的警报都会一个接一个地弹出,不会停下来再猜一次。不知道如何让它重新开始?您可能希望为用户嵌入另一个机会来输入猜测,以便您可以重新检查条件。我想如果你还有猜测,检查他们是否猜对了,如果没有,告诉他们还有多少猜测,并再次提示他们交替输入一个数字,你可以在没有while循环的情况下分离游戏逻辑。输入猜测后,检查计数器变量和增量。有一个条件,如果他们达到计数器限制,你就告诉他们他们损失了TBTW。如果这有帮助,我将感谢你标记为已解决:)当然!只需找出在何处执行此操作…此网站仍然是新网站。:)谢谢