所以我做了一个简单的猜谜游戏,数字从1-10开始。问题是,每当我猜数字正确时,它仍然说我弄错了这里是该程序的源代码。 (这是源代码的正确含义吗?)
<!DOCTYPE HTML>
<html>
<head>
<title>First Proper HTML page</title>
</head>
<body>
<h3>Hello World</h3>
<p>This is my first website</p>
<p>Its very fun and exciting</p>
<p><a href="http://xkcd.com" title="xkcd:Land of geeky comics!">Click here </a>
<script>
var randomNumber = Math.floor(Math.random(100) * 11);
//console.log(randomNumber);
var guess = prompt("Please guess a number 1 - 10");
if(guess === randomNumber){
alert("You have won! The number was " + randomNumber);
}else{
alert("You have guessed the wrong number, the real number was " + randomNumber);
}
</script>
</body>
</html>
答案 0 :(得分:3)
您正在使用严格比较(===),这将评估值和类型是否相等,我相信您应该在parseInt
中使用guess
,如下所示:
if(parseInt(guess) === randomNumber){
答案 1 :(得分:1)
这是一个严格的比较:
if(guess === randomNumber)
如果变量的类型不同,则返回false。
在您的代码中,guess
是一个字符串,因为它是prompt()
的结果。 randomNumber
是一个数字。由于字符串和数字不是同一类型,因此它总是返回false。
您可以通过将if
条件更改为:
if(guess == randomNumber)
这会导致JavaScript将guess
强制转换为数字。
或者,您可以使用parseInt()
,parseFloat()
强制执行强制,或者只需在guess
前加一个加号:
if(+guess === randomNumber)
答案 2 :(得分:1)
将===更改为==。它应该有所帮助。提示中的数字是一个字符串,因此您无法与三等号进行比较。
答案 3 :(得分:0)
(===)用于相同类型的变量,例如
true
和
false
解决方案是,你需要使用(==)表明变量是否等于另一个变量
答案 4 :(得分:0)
当您编码时请注意缩进,当您或其他人阅读代码时,它会有很大帮助。
无论如何,这应该这样做,你做错了基本上是你调用随机函数的方式。
此外,==运算符应该足够,因为您只是比较值,===表示相等的值和相等的类型。
var randomNumber = Math.floor((Math.random() * 10) + 1);
console.log(randomNumber);
var guess = prompt("Please guess a number 1 - 10");
if(guess == randomNumber){
alert("You have won! The number was " + randomNumber);
}else{
alert("You have guessed the wrong number, the real number was " + randomNumber);
}