提示()登录麻烦

时间:2018-02-03 19:44:51

标签: javascript loops login

我正在尝试登录网站,但我遇到了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++
    }
}

1 个答案:

答案 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