【发布时间】:2021-05-27 03:11:24
【问题描述】:
我正在尝试跟踪进行了多少次猜测,然后在猜到正确数字时打印该数字。当猜错数时,猜数不会更新,所以它一直显示只猜了 1 次,而实际上猜了更多。
let num = Math.floor(Math.random() * 20) + 1;
console.log(num);
let num_guess = 0
function do_guess() {
let guess = Number(document.getElementById("guess").value);
let num_guess = 1
let message = document.getElementById("message");
if (isNaN(guess)) {
message.innerHTML = 'That is not a number!';
}
else if (guess > 20) {
message.innerHTML = 'That number is not in range, try again.'
num_guess+=;
}
else if (guess > num) {
message.innerHTML = "No, try a lower number."
num_guess+=;
}
else if (guess < num) {
message.innerHTML = "No, try a higher number."
num_guess+=;
}
else if (guess == num) {
message.innerHTML = "You got it! It took you " + num_guess + " tries.";
}
}
<head>
<title>Higher - Lower</title>
</head>
<body>
<div class="container">
<h1>Higher Lower</h1>
<p>Guess a number between 1 and a maximum number of your choosing!</p>
<div class="row">
<div class="col-lg-3 col-md-6">
<form>
<div class="form-group">
<label>Your guess:</label>
<input type="text" id="guess" class="form-control">
</div>
<button type="button" class="btn btn-primary" onclick="do_guess()">Guess</button>
</form>
</div>
</div>
<p id="message"></p>
</div>
<script src="higherlower.js"></script>
</body>
```
【问题讨论】:
-
您已经创建了两次变量 num_guess。如果您希望它是全局的并且不限于函数,请从 do_guess 函数中删除 let num_guess = 1。
-
看起来在 do_guess() 的第二行中,您每次猜测都将“num_guess”重置为 1。您可能希望删除该行并确保每次进行猜测时都会调用 do_guess
-
你在范围内重新定义变量,所以每次函数触发时,它都会重置为 1。
标签: javascript html innerhtml