Galera, não entendi a lógica por trás de colocar a variável "tentativaAtual = tentativaAtual +1" antes de fechar a última chave.
Pra mim o lógico seria colocar essa variável dentro do bloco do último "else", já que é nesse ponto onde há a informação para tentar novamente.
O pensamento seria +/- assim: Já que você já passou por todas as etapas e chegou na instrução final, aqui é onde você perde uma tentativa. E logo após o programa dá um looping.
É claro que tentei dessa forma e não funcionou. Queria entender o motivo.
<meta charset="UTF-8">
<script>
var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var maximoTentativas = 3;
var tentativaAtual = 1;
while(tentativaAtual <= maximoTentativas) {
var loginInformado = prompt("Informe seu login");
var senhaInformada = prompt("Informe sua senha");
if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
alert("Bem-vindo ao sistema, " + loginInformado);
tentativaAtual = maximoTentativas; // acertou, então faço o gasto de todas as tentativas para sair do loop. Lá embaixo vai incrementar + 1!
} else {
if (tentativaAtual == 3) {
alert("Número permitido de tentativas ultrapassado!");
} else {
alert("Login inválido. Tente novamente");
~~tentativaAtual = tentativaAtual +1~~
}
}
// vai para a próxima tentativa
**tentativaAtual = tentativaAtual +1**
}
</script>