Olá pessoal.
Eu tive um pouco de dificuldade neste exercício mas no final ele deu certo.
O problema que eu estava tendo era que quando o usuário estivesse na última tentativa, mesmo se acertasse o login e senha, o programa retornava a mensagem de "Acabaram as tentativas".
A solução que encontrei foi adicionar um segundo if apenas para testar se o número de tentativas já haviam se esgotado.
Não sei se essa minha solução ficou a mais "otimizada", mas o que importa é que funcionou.
O que acham?
<meta charset="UTF-8">
<script>
var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var loginInformado = prompt("Informe seu login");
var senhaInformada = prompt("Informe sua senha");
var tentativas = 2; // número de tentativas é 2 pois a primeira tentativa já foi gasta logo acima (nos primeiros prompts)
while(tentativas >= 0){
if(loginCadastrado == loginInformado && senhaCadastrada == senhaInformada) {
alert("Bem-vindo ao sistema " + loginInformado);
break;
} else {
if(tentativas == 0){ // este if é apenas para testar se as tentativas acabaram e finalizar o programa
alert("Você esgotou as tentativas.");
break;
} else {
alert("Login inválido. Você tem mais " + tentativas + " tentativas.");
loginInformado = prompt("Informe seu login");
senhaInformada = prompt("Informe sua senha");
tentativas = tentativas - 1;
}
}
}
alert("FIM");
</script>