javascript - 猜谜游戏。While 循环
问题描述
3次尝试后如何停止while循环?
3 次尝试后游戏应该停止并且玩家输了。
let num = 4
是正确的数字。
我稍后会更改它Math.floor(Math.random)
const btn = document.querySelector('.btn')
const result = document.querySelector('.output')
let num = 4 // guessed number .
btn.addEventListener('click', function() {
let tries = 3;
while (tries > 0) {
const input = document.querySelector('.input').value
if (input == num) {
result.innerHTML = `You win! Correct number was ${num}.`
} else if (input > num) {
result.innerHTML = `Your guess is hight!`
} else if (input < num) {
result.innerHTML = `Your guess is low!`
}
tries = tries - 1;
}
document.querySelector('.input').value = ''
})
<input type="number" class="input">
<button class="btn">Submit</button>
<div class="output"></div>
解决方案
您的代码不起作用,因为您在每次单击时重新定义按钮事件侦听器内的尝试次数,并且还因为您不需要循环来使其工作。此外,当所有尝试都用完时,您没有定义要做什么的条件。
试试这个:
const btn = document.querySelector('.btn')
const result = document.querySelector('.output')
let num = 4 // guessed number .
let tries = 3;
btn.addEventListener('click', function() {
if (tries > 0) {
var input = document.querySelector('.input').value
if (input == num) {
result.innerHTML = `You win! Correct number was ${num}.`
} else if (input > num) {
result.innerHTML = `Your guess is high!`
} else if (input < num) {
result.innerHTML = `Your guess is low!`
}
tries--;
//console.log(tries);
} else {
result.innerHTML = `All out of tries.`
}
document.querySelector('.input').value = ''
})
推荐阅读
- r - R:将长单列数据帧分成两列,按字母和数字拆分,忽略标点符号
- java - Spring boot v 2.2.2.RELEASE 中的异常处理程序不起作用?
- c# - C# 中的索引错误,其中数组应返回空数组但返回超出范围
- c++ - 我该如何解决错误:'std::vector' 尚未声明
- reactjs - 反应路由器,链接到组件并在 url 中显示
- python - 使用 Pandas,将字符串从 csv 文件导入 python 脚本的 python 函数是什么
- c - 将整数转换为字节数组会产生意外结果
- excel - 选择具有包含日期的动态名称的工作表
- c# - 使用 ASCII 字符的任何提示?
- python-3.x - 将正则表达式条件添加到 python 中的 listcomp