2
respostas

simulando tela de Login

<meta charset="UTF-8">

<script>

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

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

    var contador = 1

    while (contador < 3){

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

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

        } else {

        prompt("Você errou! Informe seu login novamente:");
        prompt("Informe sua senha");

        }

        contador = contador + 1;

    }

    alert("Login inválido. Tente novamente");



</script>
2 respostas

Meu código está funcionando as três tentativas, mas ele está considerando que se você erra na primeira tentativa, você vai fazer as outras duas de qualquer jeito, mesmo se você acertar. Agradeceria se alguém pudesse me dar uma dica <3

Olá Dayane, tudo bem?

Eu testei seu código aqui, e o que causou esse erro foi na função while, ela é excelente para determinar instruções, mas devemos sempre prestar atenção nela, pois se não, deixamos num looping infinito, igual está no seu código, mas fique tranquila, pois isso é um erro que ocorre até com os mais experientes. Mas testando seu código e dando um pitaco nele, sugiro modificar a parte do while, como no exemplo que irei dar abaixo, assim seu codigo ficará com uma leitura melhor, e voce segue as boas praticas!

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>

Utilizando dessa forma, evitamos que o While entre em um looping e consequentemente deixamos o código com menos chances de ter algum erro!

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