Primeiramente, não tinha ideia nenhuma de como fazer para repetir no máximo 3 vezes até que dei uma olhada na opinião do instrutor para ter uma ideia do que fazer, mas preferi insistir na resolução que eu mesmo já tinha escrito.
Encontrei dois problemas no meu código:
1) Se eu digitar corretamente o login, mas errar propositalmente a senha, ou digitar errado o login mas digitar corretamente a senha, o programa não faz nada. Ele simplesmente não exibe nada, nem que eu errei ou acertei. Mas se eu errar propositalmente tanto o login quanto a senha o programa "funciona" menos o segundo "else" que é a minha próxima dúvida.
2) No segundo "else" do programa, simplesmente não acontece nada e não exibe o "alert" de tentativas excedidas.
No que eu errei?
E por favor, sejam sinceros, meu código ficou mais complicado do que o código do professor? Por que eu acho que, se tem um jeito mais simples de se fazer a mesma coisa, não há necessidade de complicar mais a vida né. E só por uma questão de eficiência mesmo, e não por preguiça de ter que escrever o código.
<meta charset="UTF-8">
<script>
var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var loginInformado = prompt("Informe seu login");
var senhaInformada = prompt("Informe sua senha");
if (loginCadastrado == loginInformado && senhaCadastrada == senhaInformada) {
alert("Bem-vindo ao sistema " + loginInformado);
} else {
var contadorLimite = 2;
if (contadorLimite <= 3) {
while (loginCadastrado != loginInformado && senhaCadastrada != senhaInformada && contadorLimite <= 3) {
console.log(contadorLimite);
alert("Login inválido. Tente novamente");
loginInformado = prompt("Informe seu login");
senhaInformada = prompt("Informe sua senha");
contadorLimite = contadorLimite + 1;
if (loginCadastrado == loginInformado && senhaCadastrada == senhaInformada) {
alert("Bem-vindo ao sistema " + loginInformado);
}
}
} else {
alert("Número de tentativas excedido. Tente novamente mais tarde.");
}
}
</script>