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

"login invalido" só na segunda tentativa

Amigos

Meu codigo funciona, mas me incomoda o fato do alert "LOGIN INVALIDO, TENTE NOVAMENTE" só aparecer na segunda tentativa de login.

Quando o login/senha é digitado errado de primeira, ele volta pro prompt do Login.

O que pode estar errado?

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

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

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

    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; 

        } else {

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

            tentativaAtual = tentativaAtual +1  
    }
        }




</script>
2 respostas
solução!

Olá Fabio. Está sendo declarado em dois lugares as variáveis loginInformado e senhaInformada. E quando declarado está sendo chamado a função prompt, por isso o seu código está se comportando dessa maneira.

Nessa parte do código ele chama da primeira vez.

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

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

    var maximoTentativas = 3;
    var tentativaAtual = 1;

E posteriormente nessa parte é chamado novamente.

 while(tentativaAtual <= maximoTentativas) {

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

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

Dessa maneira acertando ou não da primeira vez ele pergunta novamente.

A solução é retirar a primeira declaração:


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

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

    var maximoTentativas = 3;
    var tentativaAtual = 1;

Espero ter ajudado e qualquer dúvida só chamar.

O B R I G A D O !!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software