【发布时间】:2026-02-10 18:55:02
【问题描述】:
var randomNumber = Math.floor(Math.random() * 6);
var attempts = 0
var maximum = 3
while (attempts < maximum){
document.getElementById("submit").onclick = function() {
attempts += 1;
if (document.getElementById("input").value == randomNumber) {
alert("You chose the right number");
} else {
alert("WRONG Number! You have " + attempts + " attempts.");
}
}
}
<input type="text" id="input">
<button id="submit">Submit</button>
在学习如何使用随机数生成器时,我想添加一个 while 循环并尝试 3 次从随机数中进行选择。 当我创建一个变量来设置尝试次数时,如果我使变量等于 0,我的页面不会加载,但如果我将变量留空而没有值,则脚本不会运行。
对为什么会发生这种情况有任何想法吗?
var randomNumber = Math.floor(Math.random() * 6);
var x = 0
var maximum = 3
while (x < maximum){
document.getElementById("submit").onclick = function() {
attempts += 1;
if (document.getElementById("input").value == randomNumber) {
alert("You chose the right number");
} else {
alert("WRONG Number! You have " + attempts + " attempts.");
}
}
}
<input type="text" id="input">
<button id="submit">Submit</button>
【问题讨论】:
-
页面没有加载,因为 while(x
-
你永远不会在循环内改变
x(或maximum),所以循环永远不会结束。 -
附言。为避免将来在 SO 上询问此类琐碎的小错误,请考虑学习 how to debug small programs。如果您查看自己代码的时间过长,很容易对自己的代码中的错误视而不见,但如果您逐行查看代码的作用 explained to a rubber duck,您可能很容易发现这个错误。或者在浏览器的 JS 调试器中单步执行。
-
对不起,我在将代码发布到此处之前对代码进行了一些更改。变量名是尝试。在 While 循环的第二行添加
attempts += 1以增加数字。 (检查更新后的帖子)但即使尝试次数从未增加并且变量始终保持在 0,我认为它不应该是错误或无限循环,它只是使循环始终为 True 允许始终工作。 -
它仍然是一个无限循环。为什么不试试橡皮鸭法,看看你能不能自己弄清楚为什么? (提示:
attempts += 1行在哪里?何时执行?)
标签: javascript while-loop var