Javascript: оповещение после окончания цикла - PullRequest
0 голосов
/ 27 ноября 2018

Это простой логин для школы.Он предназначен для того, чтобы дать вам 3 попытки войти в систему. Я хотел бы сделать так, чтобы после остановки цикла (три попытки были использованы), он предупреждает пользователя, что у него нет оставшихся попыток, и его учетная запись будет заблокирована.

Что-то вроде:

alert("You don't have any attempts left. Your account is now blocked);

Вот цикл, который я сделал:

var tries;

for (tries = 2; tries !== -1; tries--) {
    let User = prompt("Enter your username:");
    let Pass = prompt("Enter your password:");
        if (User === "hello" && Pass === "world") {
            alert("Welcome.");
            break;
        } else {
            alert("Incorrect username and/or password. You have " + tries + " attempt(s) left.");
        }
}

Заранее спасибо.

Ответы [ 5 ]

0 голосов
/ 27 ноября 2018

let tries = 0;
for (tries = 3; tries-->0;) {
    let User = prompt("Enter your username:");
    let Pass = prompt("Enter your password:");
    if (User === "hello" && Pass === "world") {
        break;
    } 
    if (tries>0) {
       alert("Incorrect username and/or password. You have " + tries + " attempt(s) left.");
    }
}
if (tries<0) {
    alert("You don't have any attempts left. Your account is now blocked");
} else {
    alert("Welcome.");
}
0 голосов
/ 27 ноября 2018

Вы можете достичь этого рекурсивно.Просто уменьшайте количество попыток каждый раз, когда вводится неправильное имя пользователя или пароль.

var TRIES = 3;

function ask() {
  let User = prompt("Enter your username:");
  let Pass = prompt("Enter your password:");

  if (User === "hello" && Pass === "world") {
    return alert("Welcome.");
  }

  if (TRIES > 0) {
    alert("Incorrect username and/or password. You have " + TRIES + " attempt(s) left.");
    TRIES -= 1;
    ask()
  } else {
    alert("You don't have any attempts left. Your account is now blocked");
  }
}

ask()
0 голосов
/ 27 ноября 2018
var tries;

for (tries = 0; tries < 3; tries++) {
    let User = prompt("Enter your username:");
    let Pass = prompt("Enter your password:");
        if (User === "hello" && Pass === "world") {
            alert("Welcome.");
            break;
        } else {
            alert("Incorrect username and/or password. You have " + tries + " attempt(s) left.");
        }
        if(tries == 2)
        {
            alert("You don't have any attempts left. Your account is now blocked);
        }
}
0 голосов
/ 27 ноября 2018

Возможно, вы могли бы добиться этого, выполнив следующие действия:

for (var attemptsRemaining = 3; attemptsRemaining > 0; attemptsRemaining--) {
  
    let User = prompt("Enter your username:");
    let Pass = prompt("Enter your password:");
  
    if (User === "hello" && Pass === "world") {        
      alert("Welcome.");
      break;
    
    } else if(attemptsRemaining <= 1) {          
      alert("To many failed attempts. Your account is now blocked.");
    }
    else {    
      alert("Incorrect username and/or password. You have " + (attemptsRemaining - 1) + " attempt(s) left."); 
    }
  }
}

Идея состоит в том, чтобы добавить дополнительную проверку, чтобы увидеть, достигло ли число attemptsRemaining единицы (или меньше, для устойчивости), в этот момент все попытки истекли,В этом случае вы отображаете всплывающее окно, уведомляющее пользователя о том, что его учетная запись заблокирована.

Надеюсь, это поможет!

0 голосов
/ 27 ноября 2018

Ты где очень близко.Я думаю, что это то, что вы хотите.

var tries;

for (tries = 2; tries >= 0; tries--) {
    let User = prompt("Enter your username:");
    let Pass = prompt("Enter your password:");
        if (User === "hello" && Pass === "world") {
            alert("Welcome.");
            break;
        } else if (tries == 0) {
            alert("You don't have any attempts left. Your account is now blocked");
        }  else {
            alert("Incorrect username and/or password. You have " + tries + " attempt(s) left.");
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...