GuessGame if / else逻辑

时间:2017-11-09 12:17:33

标签: javascript

程序生成0到1500之间的随机数,并将其存储在rndnum中,您有10个猜测,游戏会告诉您数字是高还是低。当你开始游戏时,在顶部,它表示"你的号码在0(lownum)和1500(highnum)之间"我希望这些能够随着你的猜测而改变。

问题在于,当您猜测数字<= 1000且正确答案较高时,上述文本保持不变,尽管程序知道数字介于参数之间。

if (inputnum.value > lownum && inputnum.value < rndnum) {
    lownum = inputnum.value
} else if (inputnum.value < highnum && inputnum.value > rndnum) {
    highnum = inputnum.value
}
choosedif.innerHTML = "Your number is between " + lownum + " and  " + highnum;

编辑:完整代码(https://pastebin.com/VtaFMVS8

1 个答案:

答案 0 :(得分:0)

我会猜测并且说你只是在你希望它被执行多次时才执行此动作一次。给出的代码片段没有任何问题,但它并没有说明完整的故事。

不幸的是,你必须明确告诉浏览器该做什么以及何时做。它不会自动更新您的HTML,除非您告诉它。 Javascript的DOM操作方面主要是事件驱动的系统。

您需要某种触发器,例如按下按钮,输入框中的值被更改,或者为了执行某项功能而可能发生的任何其他事情。在下面的示例中,我们将changeValue函数绑定到按钮的onClick event。单击该按钮后,只有单击该按钮,changeValue函数才会运行您的代码段,从而更新html。

&#13;
&#13;
// set up initial numbers
lownum = 0;
highnum = 1000;
rndnum = Math.floor(Math.random()*highnum)
// get elements
inputnum = document.querySelector("#inputnum")
choosedif = document.querySelector("#choosedif")

function changeValue(){
  if (inputnum.value > lownum && inputnum.value < rndnum) {
      lownum = inputnum.value
  } else if (inputnum.value < highnum && inputnum.value > rndnum) {
      highnum = inputnum.value
  }
  inputnum.value = "" // clear input box
  choosedif.innerHTML = "Your number is between " + lownum + " and  " + highnum;
}

changeValue();
&#13;
<input id="inputnum" type="number"/>
<button onclick="changeValue()">Guess</button>
<div id="choosedif"></div>
&#13;
&#13;
&#13;