[英]Prompt() Login trouble
我正在嘗試登錄網站,而while循環遇到了麻煩。 如果我輸入正確的登錄名,它會正確通過,但是如果輸入錯誤,則不會重復。 由於變量“ login”仍然為false,所以我不知道為什么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++
}
}
讓我們分解一下問題,首先對登錄進行有效性檢查...
// 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.