首页 > 解决方案 > 如何给出还剩多少次尝试

问题描述

我有一个作业问题,我必须创建一个变量作为常量并将您的密码存储在这个变量中。

提示用户输入密码,并让他们知道他们有 3 次猜测才能获得正确的密码。

如果密码正确,请让用户知道,并且不会出现进一步的提示。

如果密码不正确,您应该提醒用户密码不正确,并传达他们还剩多少次尝试。

在第三次猜测之后,应该提醒用户他们已经猜到了,并且不会再出现提示。

我似乎无法弄清楚的唯一部分是如何说出还剩多少次尝试然后重播消息。

我曾尝试使用 for 循环,但它给出了undefined.

const x = window.prompt("Enter a password")
var y = window.prompt("Reenter your password")
var i = 0
var message = []
message = " "

if (x === y) {
  window.alert("You got it right!")
} else {
  window.alert("Try again")
  for (i = 4; i < 4; i--) {
    message[0] += "You have " + i + "tries left"
    message[1] += "You have " + i + "tries left"
    message[2] += "You have " + i + "tries left"
    message[3] += "You are out of tries"
  }
}

标签: javascript

解决方案


我不喜欢完成其他任务,但是,我希望这可以帮助您了解 JavaScript 的工作原理。

首先,您需要将for-loop 移到顶部(在初始化x为密码的下方),以便每次都执行所有操作(显示提示)时了解所有代码:

const x = window.prompt('Enter a password')
for (i = 3; i > 0; i--) {
  ...
}

请注意我如何更改i = 4i = 3,因为您希望在 -loop 控制的最后一段尝试和递减三次,for因为您想从30

现在,您还需要更改显示部分。您可以删除您的message列表,因为它不应该是必需的:

  ...
} else {
  if (i > 1) window.alert(`You have ${i} tries left.`)
  else window.alert(`You are out of tries.`)
}

我使用了一个if-statement 来确定是否还有尝试。如果i == 1,则没有剩余尝试,因为那是最后一次尝试。
另外,我使用模板文字来显示尝试次数。学到更多

一个可能的解决方案可能如下所示:

const x = window.prompt(`Enter a password`)
for (i = 3; i > 0; i--) {
  const y = window.prompt(`Reenter your password`)
  if (x === y) {
window.alert(`You got it right!`)
  } else {
if (i > 1) window.alert(`You have ${i} tries left.`)
else window.alert(`You are out of tries.`)
  }
}


推荐阅读