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

Código só funciona corretamente quando erro o login/senha. Por quê?

<mega charset = "UTF-8">

<script>

function pula()  {

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

function mostra(frase)  {

    document.write(frase);
    pula();
}

var loginCadastrado = "alura";
var senhaCadastrada = "alura123";


var tentativaAtual = 1;
var maximoTentativas = 3;

while(tentativaAtual <= maximoTentativas) {


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


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

mostra("Bem-vindo " + loginInformado);

tentativaAtual = maximoTentativas;
} else {
    if(tentativaAtual == 3)  {

alert("Número total de tentativas alcançado!");
} else {
    alert("Login inválido!");

    }
tentativaAtual = tentativaAtual + 1;

    }
}


</script>
1 resposta
solução!

Oi, Arthur, tudo bem?

Foi um pequeno detalhe que passou despercebido. A linha tentativaAtual = tentativaAtual + 1; está dentro do escopo do primeiro else, por isso, ele não concluia quando o usuário acertava o login e senha, ele fazia o loop novamente. O correto é:

alert("Número total de tentativas alcançado!");
} else {
    alert("Login inválido!");

    }

    }
tentativaAtual = tentativaAtual + 1;
}

Ficar dentro do escopo do while.

Espero ter te ajudado!

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