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

login e senha

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

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

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

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

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

        alert("Login inválido. Tente novamente");
        contador_test = contador_test+1;
      }
    }

</script>
3 respostas
solução!

Olá João, tudo bem?

A sua ideia de código foi boa, seguiu o raciocínio do que o exercício pede. Porem, você pode fazer o código de forma mais limpa e mais intuitiva para quem o lê, dessa forma:

<meta charset="UTF-8">

<script>

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

    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; // acertou, então faço o gasto de todas as tentativas para sair do loop. Lá embaixo vai incrementar + 1! 

        } else {

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

       // vai para a próxima tentativa
        tentativaAtual = tentativaAtual +1  
    }

</script>

Assim ele fica mais pratico para ser interpretado por outros programadores.

Qualquer duvida é só perguntar viu? Bons Estudos!!!!!

pq o "tentativaAtual = tentativaAtual + 1", está no final do programa e não logo depois do while? Eu sei que o programa não irá funcionar corretamente desse jeito, mas não entendi o pq não vai funcionar. Se puder me dar uma luz agradeço muito.

Olá Thor, tudo bem?

Ele precisa ir no final pois, é como se fosse uma limitação while de reconhecer o fim do programa, se você coloca tentativaAtual = tentativaAtual + 1 no começo, ele provavelmente irá ficar rodando a função while mesmo depois de conseguir o resultado esperado, ficando num looping infinito!

Deixar tentativaAtual = tentativaAtual + 1 no fim faz com que o programa reconheça aonde deve parar. E por consequência te dar um resultado.

Espero ter ajudado, qualquer duvida é só perguntar!!! Bons Estudos!!!