首页 > 解决方案 > 为什么while循环以字符串停止,而不是整数?

问题描述

我花了很多时间搜索和调试,但是当我的变量是一个字符串时,我无法弄清楚为什么 while 循环会在“猜测”时停止......

const myName = 'Daniel';

let guess = prompt("Guess my name!");
while (guess !== myName) {
    guess = prompt("That's incorrect. Guess again!");
}
console.log("Congrats! You guessed my name!")

...但不是当它是一个整数时。

const myAge = 28;

let guess = prompt("Guess my age!");
while (guess !== myAge) {
    guess = prompt("That's incorrect. Guess again!");
}
console.log("Congrats! You guessed my age!")

即使我输入了正确的答案,弹出窗口也会不断出现。我究竟做错了什么?

(我知道我可以只制作 28 个字符串,但我仍然不明白为什么第二个片段不起作用。)

标签: javascriptstringwhile-loopinteger

解决方案


因为!==包括类型检查,而您只是将字符串“28”与整数 28 进行比较,这是不一样的。将您的值比较更改为!=,将整数转换为字符串 - so ,或者如果您确定要验证整数输入,则const myAge = '28';使用将用户的输入转换为整数。parseInt()

您将从用户输入中获得一个字符串。总是。不是整数。


推荐阅读