Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tentando resolver usando while

<meta charset="UTF-8">
<script>

    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";

    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");

    var numeroTentativas = 0
    if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

        alert("Bem-vindo ao sistema " + loginInformado);
    } else {
        while(numeroTentativas <= 3)
        numeroTentativas = numeroTentativas + 1
        alert("Login inválido. Tente novamente");
    }
</script>

Olá mundo ! tentei resolver dessa maneira, mas independente do numero que coloco no critério do while ele popa só 2 caixas de formulário e na terceira ele só mostra uma mensagem de "Login inválido. Tente novamente". O que pode estar errado ?

1 resposta
solução!

Oi Yudi, tudo bem?

Vamos lá. você inseriu o while após o else, essa instrução está sendo lida como um loop, ou seja, toda vez que ele ler o bloco ele vai voltar enquanto o numero de tentativas for igual ao numero de tentativas + 1, depois vai ler o resto do código, o que gera esse resultado no seu código. Para resolver esse problema, basta substituir o while por um if, que vai te trazer uma condição, da seguinte forma:

    else {
            if (tentativaAtual == 3) {
                alert("Número permitido de tentativas ultrapassado!");
            } else {
                alert("Login inválido. Tente novamente");
            }
        }

       // não se esqueça de seguir para a próxima tentativa
        tentativaAtual = tentativaAtual +1  
    }

Espero ter te ajudado! Bons estudos =)