如何用Javascript中的if语句修复while循环

如何用Javascript中的if语句修复while循环,javascript,html,Javascript,Html,嘿,我正在使用javascript进行一个猜谜游戏项目,该项目需要在提示“给我一个介于1和10之间的数字”中输入一个数字。说明包括以下内容: 而猜测并不等于目标 提示进行新的猜测 如果猜测值小于目标值 打印“太低!” 否则,如果猜测值大于目标值 打印“太高!” 其他的 打印“明白了!” 所以我有我的while循环和if条件语句,但我不知道如何在while循环中包含if语句。我的实际结果只是提示我重复猜测,而没有太高的警告!或者太低了!不过,我在猜测正确数字时的else语句似乎有效。多谢各位 m

嘿,我正在使用javascript进行一个猜谜游戏项目,该项目需要在提示“给我一个介于1和10之间的数字”中输入一个数字。说明包括以下内容:

而猜测并不等于目标 提示进行新的猜测 如果猜测值小于目标值 打印“太低!” 否则,如果猜测值大于目标值 打印“太高!” 其他的 打印“明白了!”

所以我有我的while循环和if条件语句,但我不知道如何在while循环中包含if语句。我的实际结果只是提示我重复猜测,而没有太高的警告!或者太低了!不过,我在猜测正确数字时的else语句似乎有效。多谢各位

min=1;
设max=10;
让target=Math.random()*(max-min+1);
目标=数学楼层(目标)+分钟;
让猜测=(0);
猜测=提示(“给我一个介于1和10之间的数字”);
log(“您的猜测是”+猜测);
while(猜测!=目标){
提示(“再次猜测”);
console.log(猜测);
}
如果(猜测<目标){
警惕(“太低!”);
log(“猜测太低”,猜测);
}否则如果(猜测>目标){
警惕(“太高了!”);
log(“猜测过高”,猜测);
}否则{
警惕(“你明白了!”);

}
您的代码当前正在执行以下操作:

  • 永远:问“再猜一次”
  • “永远”结束后(永远都不会!)检查
    guess
    的值。此外,
    guess
    的值与第一次提问时的值相同
  • 你会想要这个:

  • 永远:问“再猜一次”
  • 在“再次猜测”之后,检查并存储最后一个答案的存储值
  • 如果答案正确,停止永久运行循环
  • 但同样重要的是:确保
    prompt
    返回一个数字,因为任何东西都可以在文本提示中输入

    这就是:

    // See Note 1.
    guess = parseInt(prompt("Give me a number between 1 and 10"), 10);
    console.log("Your guess is" + guess);
    
    // 1. Do something forever
    while (guess != target){
        // 2. store the last answer
        guess = parseInt(prompt("Guess again"), 10);
        console.log(guess);
        
        // 2b. check the last answer
        if (guess < target){
            alert("too low!");
            console.log("too low guess", guess);
        }else if (guess > target){
            alert("too high!");
            console.log("too high guess", guess);
        }
        // 3. If the answer is correct, `guess === target` so the loop will end.
    }
    
    // See Note 2.
    alert("You got it!");
    
    //见注1。
    guess=parseInt(提示(“给我一个介于1和10之间的数字”),10);
    log(“您的猜测是”+猜测);
    // 1. 永远做某事
    while(猜测!=目标){
    //2.存储最后一个答案
    guess=parseInt(提示(“再次猜测”),10);
    console.log(猜测);
    //检查最后一个答案
    如果(猜测<目标){
    警惕(“太低!”);
    log(“猜测太低”,猜测);
    }否则如果(猜测>目标){
    警惕(“太高了!”);
    log(“猜测过高”,猜测);
    }
    //3.如果答案正确,`guess===target`那么循环将结束。
    }
    //见注2。
    警惕(“你明白了!”);
    
    注1:如果玩家输入了无法转换为整数的内容,
    parseInt(,10)
    将返回
    NaN
    (不是数字)。您可以测试:
    isNaN(123)
    /
    isNaN(NaN)


    注2:如果玩家一次就正确了,应用程序将不会显示消息,因为“yougottit”在循环中。如果第一次的答案是正确的,循环就永远不会进入。将消息放在循环之外以解决此问题。

    您没有重新分配猜测值,提示的结果始终是字符串或空值,因此您也应该将其转换为数字“我的实际结果只是提示我重复猜测,而没有提示太高!或太低!”-因为
    如果。。。else…
    部分不在
    while
    循环中。您必须将if..else内容放在while块中,而不是放在它之后。