带有提示收集变量的Javascript While循环

带有提示收集变量的Javascript While循环,javascript,Javascript,希望你们都做得很好! 我是js的新手,我已经写了下面的代码,但是它没有按照我预期的方式工作。需要帮助! 问题是,我希望循环继续到“numberToGuess=guessNumber”,但不幸的是,它在第二个循环时中断;即使numberToGuess不等于guessNumber。 有人能告诉我怎么修吗? 谢谢 constnumbertoguess=Math.round(10*Math.random()); 让我们猜猜数字; while(numberToGuess!==guessNumber){ 猜

希望你们都做得很好! 我是js的新手,我已经写了下面的代码,但是它没有按照我预期的方式工作。需要帮助! 问题是,我希望循环继续到“numberToGuess=guessNumber”,但不幸的是,它在第二个循环时中断;即使numberToGuess不等于guessNumber。 有人能告诉我怎么修吗? 谢谢

constnumbertoguess=Math.round(10*Math.random());
让我们猜猜数字;
while(numberToGuess!==guessNumber){
猜测数字=提示(“猜测隐藏数字:”);
如果(猜测数<数字猜测数){
控制台日志(“过低”);
}else if(猜测数字>数字猜测){
控制台日志(“过高”);
}
}
log(“恭喜!你找到了!”);
console.log(“猜数=“+numberToGuess+”\n猜数=“+guessNumber”);

您必须通过替换
来改变比较
numberToGuess
guessNumber
的方式==
一起使用=

下面是经过测试和运行的代码

constnumbertoguess=Math.round(10*Math.random());
让我们猜猜数字;
while(numberToGuess!=guessNumber){
猜测数字=提示(“猜测隐藏数字:”);
如果(猜测数<数字猜测数){
控制台日志(“过低”);
}else if(猜测数字>数字猜测){
控制台日志(“过高”);
}
}
log(“恭喜!你找到了!”);

console.log(“猜数=“+numberToGuess+”\n猜数=“+guessNumber”)正如Ivar正确地说的,prompt()总是以字符串形式返回值。如果要进行比较,可以执行以下操作:

const numberToGuess = Math.round(10*Math.random());
let guessNumber;

    while(numberToGuess !== Number(guessNumber)){
    guessNumber = prompt("Guess the hidden number: ");
    if(guessNumber < numberToGuess){
    console.log("Too low");
    }else if(guessNumber > numberToGuess){
    console.log("Too high");
    }
    }
    
    console.log("Congrats ! You found it !");
    console.log("Number to guess = " + numberToGuess + "\nGuessed number = " + guessNumber);
constnumbertoguess=Math.round(10*Math.random());
让我们猜猜数字;
while(numberToGuess!==数字(guessNumber)){
猜测数字=提示(“猜测隐藏数字:”);
如果(猜测数<数字猜测数){
控制台日志(“过低”);
}else if(猜测数字>数字猜测){
控制台日志(“过高”);
}
}
log(“恭喜!你找到了!”);
console.log(“猜数=“+numberToGuess+”\n猜数=“+guessNumber”);

“添加数字”函数将字符串格式转换为数字格式,因此比较将是数字本身。

这是否回答了您的问题?
numberToGuess
的类型是一个数字。
prompt()
始终返回字符串。如果你将一个字符串与一个数字进行比较,它将永远不会相等。嗨!谢谢你的帮助。但是它仍然没有达到我预期的效果。那么,预期的结果是什么呢?有了上面的代码,它会一直让你猜一个数字,直到你找到正确的数字!谢谢你的帮助。但它仍然没有像我预期的那样工作。我会解释:第一次,数学。圆。。。。。函数将生成一个随机数并将其存储在“numberToGuess”变量中。然后,prompt方法将要求用户输入(当然,它将要求给出一个数字),只要prompt方法收集的给定数字不等于“numberToGuess”变量中保存的随机数,我希望代码继续循环并要求另一个输入数字,直到输入数字(guessNumber)为止等于“numberToGuess”中保存的随机数。它在第一次输入时就中断了循环。我使用jsbin.com测试代码,但在那里它不能正常工作,所以我使用了我的浏览器控制台开发工具,它成功了!谢谢你的帮助!你好谢谢你的帮助。但它仍然没有像我预期的那样工作。我会解释:第一次,数学。圆。。。。。函数将生成一个随机数并将其存储在“numberToGuess”变量中。然后,prompt方法将要求用户输入(当然,它将要求给出一个数字),只要prompt方法收集的给定数字不等于“numberToGuess”变量中保存的随机数,我希望代码继续循环并要求另一个输入数字,直到输入数字(guessNumber)为止等于“numberToGuess”中保存的随机数。我使用jsbin.com测试代码,但它在那里不能正常工作,所以我使用了浏览器控制台开发工具,它工作了!谢谢你的帮助!
const numberToGuess = Math.round(10*Math.random());
let guessNumber;

    while(numberToGuess !== Number(guessNumber)){
    guessNumber = prompt("Guess the hidden number: ");
    if(guessNumber < numberToGuess){
    console.log("Too low");
    }else if(guessNumber > numberToGuess){
    console.log("Too high");
    }
    }
    
    console.log("Congrats ! You found it !");
    console.log("Number to guess = " + numberToGuess + "\nGuessed number = " + guessNumber);