我刚开始学习JS,就被困在这里了。我需要做的是:
- 如果您输入的密码不正确,则会收到“重试”消息。
- 如果您没有输入密码3次,您会得到消息“没有更多的尝试离开”。
- 如果您输入正确的密码,您会收到“您可以输入”的消息。
下面是我的代码:
for ( let i = 3; i > 0; i-- ) {
let password = prompt("What is the password?")
if ( password.toUpperCase() !== "BINGO" ) {
alert("Try again")
} else if ( i = 0 ) {
alert("No more tries left")
} else {
alert("You may enter")
}
}
我无法让它正常工作,因为没有显示消息“No more trints left”。我知道( i = 0 )
是错误的,但我不知道如何让它工作。
6条答案
按热度按时间nszi6y051#
首先,当你检查
i == 0
时,确保你没有使用赋值运算符,你现在使用的是i = 0
,它并不检查两个值是否相等,而是把左赋值给右。第二,你的for循环被关闭了一点。它永远不会得到0,因为你要求它循环while
i > 0
,而不是i >= 0
。但是等一下--如果你使用i >= 0
,它会循环四次。这也不是你想要的。我们妥协一下,循环三次,但是检查i == 1
而不是0。下面是我的更正代码的工作:
zdwk9cvp2#
试试这个。
给予用户3次输入密码的机会,但循环4次,并检查循环是否运行第4次(i === 0)。如果提示
No more tries left
并中断循环。eni9jsuy3#
您正在使用赋值运算符而不是比较运算符。请更改此设置:
对此:
oyjwcjzk4#
试试这个。它会循环运行,直到他们正确输入密码或尝试的次数是3。
在循环之后,您可以检查valid是true还是false。
sxpgvts35#
1.你要求用户在每次循环中输入密码,所以,显示“你没有剩余的尝试次数了”在这里是没有用的,因为如果值大于3,循环中的指令就不会被执行。
1.不要使用JavaScript进行身份验证。它是一种客户端编程语言,任何知道如何工作的人都可以提取密码。相反,使用后端语言进行身份验证,如PHP、Node.js
1.但是,如果您只是出于学习的目的而不是为了实现它,那么下面的代码将对您有所帮助
1.有几种方法可以做到“没有更多的尝试离开”是,其中一个简单和基本的是:
1.上面的代码可以使用输入字段来实现,正如我所说,有几种方法。希望对你有所帮助!
ql3eal8s6#
你的代码很好,问题是它没有落入if条件
(i == 0)
,因为循环只在i > 0
时运行,只需要这样调整: