我正在尝试登录网站,但我遇到了while循环问题。 如果我输入正确的登录信息,它会正确执行但如果我弄错了,则不会重复。由于变量“login”仍然是假的,我不知道为什么while循环不会再次运行。
var login = false;
var num = 0;
var username = prompt("Enter your username");
var password = prompt("Enter your password");
while(!login){
if(username == users[num].name){
if(password == users[num].password){
alert("welcome");
login = true;
}
}
if(num >= users.length){
alert("incorrect login");
num = 0;
username = prompt("Enter your username");
password = prompt("Enter your password");
} else {
num++
}
}
答案 0 :(得分:0)
让我们稍微分解问题,首先要对登录进行有效性检查......
// assumes users is an array of registered users
function loginIsValid(username, password) {
for (var n=0; n<users.length; n++) {
if(username === users[n].name && password == users[n].password)
return true;
}
return false;
}
现在我们的提示循环更简单......
var login = false;
while(!login){
var username = prompt("Enter your username");
var password = prompt("Enter your password");
if (loginIsValid(username, password)) login = true;
}
您可以考虑添加一个计数器,因此检查是:
var attempts = 0;
while(!login && attempts < MAX_ATTEMPTS) {
attempts += 1;
// etc