为什么我的代码不起作用?当我正确输入数字时,它不会显示window.alert
它是正确的。
问题在于:编写一个程序,选择1到10之间的随机数。给用户5个猜测(使用循环)来猜测数字。如果他们错了,请告诉他们。如果他们是对的,请告诉他们并退出循环。在程序结束时,向他们显示实际数字。
<script>
var num = Math.floor(Math.random()*10 + 1);
var guess = parseInt(window.prompt("Enter a number!"));
for (var x=1; x<=5; x++) {
if (num == guess) {
window.alert("You are right!");
break;
}
else {
window.prompt("You were wrong, try again!");
continue;
}
}
document.write("The number was "+num);
</script>
答案 0 :(得分:1)
你没有使用随后的猜测。当您在循环内重新提示时,需要更新guess
:
guess = parseInt(window.prompt("You were wrong, try again!"));
// ^^^^^^^^^^^^^^^^^-------------------------------------------^
示例:
var num = Math.floor(Math.random() * 10 + 1);
var guess = parseInt(window.prompt("Enter a number!"));
for (var x = 1; x <= 5; x++) {
if (num == guess) {
window.alert("You are right!");
break;
} else {
guess = parseInt(window.prompt("You were wrong, try again!"));
continue;
}
}
console.log("The number was " + num);
另外:在页面的主要解析完成后(或者,实际上),不要使用document.write
。相反,使用DOM向页面添加元素以显示您想要显示的内容。
此外,由于您的循环中没有其他内容,因此continue
是不必要的。
然后就是Ben Snaize's point:代码实际上让用户猜了六次,虽然它会抛弃最后的猜测。
答案 1 :(得分:1)
根据@ Milaci的答案版本,只有5个猜测。此外,它现在正确使用最后一次猜测。
.gitignore
&#13;
答案 2 :(得分:0)
您正在生成一个随机数,然后进行一次猜测,然后循环五次以查看这两个数字是否相同。你应该在循环中得到一个新的猜测。
答案 3 :(得分:0)
你应该使用两次猜测,一次是第一次,另一次是在for循环中,取一个用户插入的值。我使用静态5值来促进测试
var num=5;//Math.floor(Math.random()*10+1);
var guess=parseInt(window.prompt("Enter a number!"));
for(var x=1; x<=5; x++){
if (num==guess){
window.alert("You are right!");
break;
}
else{
guess=parseInt(window.prompt("You were wrong, try again!"));
}
}
document.write("The number was "+num);