Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida em como escrever a condição para as 3 tentativas na tela de login

Desenvolvi o código de uma outra forma, e parece ter dado certo, mas quando faço numeroTentativaAtual <=3 (número máximo de tentativas), ele permite verificar login e senha 4 vezes. Para que a verificação seja feita apenas 3 vezes, tive que colocar no while( numeroTentativaAtual < numeroMaximoTentativas) e nao <=.Por que isso?

insira seu código aqui
4 respostas

Olá Maria, coloca o seu código aqui para vermos o que pode estar errado.

aqui está. Agradeço desde já a ajuda.

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

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

    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");
    var numeroMaximoTentativas=3;
    var numeroTentativaAtual=1;

    function informeLoginSenha(){

        prompt("Informe seu login");
        prompt("Informe sua senha");

    }


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

        alert("Bem-vindo ao sistema " + loginInformado);
    }else{

        while(numeroTentativaAtual<=numeroMaximoTentativas){

            alert("Login inválido! Tente novamente");
            informeLoginSenha();
            numeroTentativaAtual=numeroTentativaAtual+1;
            }
                alert("Número máximo de tentativas ultrapassada");
    }



 </script>
solução!

Olá Maria, tudo certo?

Foi difícil mas encontrei o pq do erro. Quando você coloca o login ou senha errado o if é falso, então segue pro else. Até aí ok.

Mas quando chega no while, primeiro é exibido um alerta com a mensagem errada, depois a função informeLoginSenha é chamada antes do contador. Ou seja, só a partir do segundo erro que começa a contagem das tentativas.

Conseguiu entender?

Um jeito de se resolver isso seria colocando o < no lugar de <=, e a outra maneira seria colocando o contador antes da função informeLoginSenha.

Espero ter ajudado, bons estudos!

Entendi sim, muito obrigada! :-)