1
resposta

COMO USAR CONTADORES EM LOOPS WHILE

Pessoal estou com um pouco de dificuldade em como usar esses contadores quando eu uso um while ou em qualquer outra função que precise do mesmo, eu vi aqui no grupo diversas formas de uso mais ainda estou com dificuldade em saber onde e como usar.

vou mostrar aqui meu código e se alguém poder me ajudar, ele mostra 4 vezes a tela de login e senha e depois não mostra a mensagem de " alert("Você digitou o login errado mais de 3 vezes! Usuário bloqueado") Preciso fazer com que ele mostre apenas 3 vezes a tela de login caso não acerte o login ou a senha.

<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 = 0;


while(contador <= 2){

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

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


}else if(loginCadastrado != loginInformado && senhaCadastrada != senhaInformada){

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

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

            contador = contador + 1;

}else if (contador == 2){

    alert("Você digitou o login errado mais de 3 vezes! Usuário bloqueado")

}    

}
1 resposta

Amigo. Fiz umas mudanças no seu código e tentei alterar o menos possível:

<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 = 0;


while(contador <= 2){ // é 2 pois a primeira tentativa já foi feita fora do loop.

        if (contador == 2){ // sempre que iniciar outro ciclo, ele primeiro vê se o contador chegou a 2.

             alert("Você digitou o login errado mais de 3 vezes! Usuário bloqueado")
             break;
        }   

        if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) { // Se contador é diferente de dois, pula para este

            alert("Bem-vindo ao sistema " + loginInformado);
            break; // Neste ponto, o break faz o loop parar.


        }else{

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

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

            contador = contador + 1; // pode ser também o contador++;

        }       

}
</script>