我正在尝试在我和AI之间创建更高数量的纸牌游戏,但无论我输入什么,它总是说房子赢了。如果有人能帮我弄清楚为什么我的if,else语句没有激活,我会很感激。
<head>
<meta charset="UTF-8">
<!-- Extra Credit -->
<!-- Jordan Smith -->
</head>
<body>
<h1> Beat the House! </h1>
<script>
var num1 = prompt("Please enter a number between 1 and 10.", "");
var result = Number(num1);
num1 = parseFloat(num1);
{
document.write("</p>" + num1 + " is your number. </p>");
}
for(i=0; i < 1; i++){
var num2 = document.write(Math.floor(Math.random() * 10) + " ");
}
{
document.write(" is the house's number.");
}
{
document.write("<br>");
document.write("<br>");
}
if (num1 > num2) {
document.write("You have the higher number! You win!");
} else {
document.write("The house has the higher number! You lose!");
}
</script>
</body>
</html>
答案 0 :(得分:0)
document.write
不会返回任何内容,因此会因不平等而转换为NaN
。与NaN
的比较总是错误的,所以在这种情况下它会像房子一样对待它。
你可能想要的是:
// num2 is a number
var num2 = Math.floor(Math.random() * 10);
document.write(num2 + " ");
答案 1 :(得分:0)
var num2 = document.write(Math.floor(Math.random() * 10) + " ");
不会在您的情况下返回任何内容。
以上解决方案就是这样:
for(i=0; i < 1; i++){
var num2 = Math.floor(Math.random() * 10);
}
{
document.write(num2+" is the house's number.");
}
对于未来,你可以随时检查变量的含义,将它们输出到控制台:
console.log(num1);
console.log(num2);
那样你就会知道num1会输出你告诉它的任何东西,而num2(在你的例子中)会输出NaN - 因为你无法将数字与NaN进行比较:if-else语句将始终转到else。 / p>