1
resposta

Não funciona corretamente

Pessoal, eu fiz um pouco diferente da resolução do prof e enquanto o login e senha estão corretos, dá tudo certo. Porém quando entra na parte em que a senha ou o login estão incorretos não funciona corretamente. Alguma luz do que pode ser?

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

     function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
}

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
}
    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";


    var tentativas = 1

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

        while (tentativas <= 3){


        if (loginCadastrado == loginInformado && senhaCadastrada == senhaInformada){

            alert("Bem-vindo ao sistema " + loginInformado);
            tentativas = tentativas + 3;

            }else {

                tentativas = tentativas + 1
                alert("Senha ou login incorretos. Tente novamente.");
            loginInformado = prompt("Informe seu login:");
            senhaInformada = prompt("Informe sua senha:");

            ;

        }
   }

</script>
1 resposta

Oi, Ana, tudo bem?

De fato, acontece esse problema. A nossa intenção é que depois do primeiro else, o programa caia em uma outra verificação, que é a de caso o usuário erre o login e/ou senha. O que criaríamos outro if com a condição de

if (tentativas ==3){
    alert("Número permitido de tentativas ultrapassado!");
} elsel{
     alert("Senha ou login incorretos. Tente novamente.");
}

Com isso conseguimos verificar o possível erro do usuário. E antes que o while conclua sua condição, precisamos incrementar as tentativas, ou seja, a cada volta do while, o nosso contador roda até chegar no limite:

tentativas = tentativas + 1;

Outro ponto é que, os campos de entrada precisam estar dentro do while, pois fora, não consegue verificar, por isso que ele não alerta o erro:

while (tentativas <= 3){
            var loginInformado = prompt("Informe seu login");
          var senhaInformada = prompt("Informe sua senha");

        if (loginCadastrado == loginInformado && senhaCadastrada == senhaInformada){

            alert("Bem-vindo ao sistema " + loginInformado);
            tentativas =  3;

            }else {

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

        }
        tentativas = tentativas + 1;
   }

Testa e me diz se certo :} Espero ter te ajudado!