一个关于我用Js做年龄游戏的小问题

时间:2019-03-23 09:30:04

标签: javascript

在我的udemy课程中,我们刚被介绍给JS! 我喜欢这种语言,现在我几乎是新手。 希望您能对我有所帮助,我希望我的代码不断要求用户猜测我设置为sercretNumber的年龄。

我遇到2个问题:

1)我认为我的代码可以而且需要更短一些,也许使用一些OR和AND。

2)我无法告知用户该数字是否为负或大于100,请说出-您的电话号码必须为1-100,以再次提示用户输入。  我让它工作一次就消失了!

这是Js代码:

var secretNumber=98;
var numbGues=Number(prompt("Can you guses My age? (Hint - its 1-100"))




    while (numbGues!=secretNumber){

    // here I want this message to keep repeating if the user enters a non-valid input such as: -987 , or 54564654//

      if (numbGues<0 || numbGues>100 ){
        var numbGues=Number(prompt("Pleae choose a valid number between 1-100"))
      }



      if (numbGues<secretNumber){
        var numbGues=Number(prompt("Too low! try again"))
      }



     else  if (numbGues>secretNumber) {
        var numbGues=Number(prompt("Too High! Try again!"))
      }

      if (numbGues==secretNumber) {
        alert("You guessed it!")
      }

    }

2 个答案:

答案 0 :(得分:0)

考虑if-if-else if,if结构。可以简化它。一旦涵盖了所有基础,则不需要其他条件,只需要一个else即可结束条件语句。

关于第二点,在您的第一条if语句中,您已经在提示用户输入您提到的相同情况。只需将其替换为要在该块中显示的错误消息即可。

答案 1 :(得分:0)

一点点更改了您的代码。您需要更改

  if (numbGues==secretNumber) {
    alert("You guessed it!")
  }

此if语句。最终您的代码如下所示。

var secretNumber=98;
var numbGues=Number(prompt("Can you guses My age? (Hint - its 1-100"));
while (numbGues!=secretNumber){
// changed if else statements
  if (numbGues<0 || numbGues>100 ){
    numbGues=Number(prompt("Pleae choose a valid number between 1-100"));
  }else if (numbGues<secretNumber){
    numbGues=Number(prompt("Too low! try again"));
  }else  if (numbGues>secretNumber) {
    var numbGues=Number(prompt("Too High! Try again!"));
  }
}
//you need to check this if statement in here otherwise if user entered secret number first time didn't show any alert
if (numbGues==secretNumber) {
    alert("You guessed it!")
}