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

Porque o meu sistema fica em Loop quando eu acerto o Login e a Senha?

<meta charset="UTF-8">

<script>
    var loginCadastrado = "Alura";
    var senhaCadastrada = "Alura123";

    var tentativasMaximas = 3;
    var tentativasAtual = 1;

    while(tentativasAtual <= tentativasMaximas) {
        var loginInformado = prompt("Informe seu Login ");
        var senhaInformada = prompt("Informe sua senha ");
        if(loginInformado == loginCadastrado && senhaInformada == senhaCadastrada) {
            alert("Bem-vindo ao sistema " + loginInformado);
            tentativasAtual = 1 // O sistema está em loop
        } else {
            alert("Você errou, tente novamente");
            tentativasAtual++
        }
    }

</script>
1 resposta
solução!

Acrescente o break para que o sistema saia do loop:

while(tentativasAtual <= tentativasMaximas) {
        var loginInformado = prompt("Informe seu Login ");
        var senhaInformada = prompt("Informe sua senha ");
        if(loginInformado == loginCadastrado && senhaInformada == senhaCadastrada) {
            alert("Bem-vindo ao sistema " + loginInformado);
               tentativasAtual = 1 // O sistema está em loop
           break;
        } else {
            alert("Você errou, tente novamente");
            tentativasAtual++
        }
    }

Entrou em loop porque a condição para o loop prosseguir é tentativasAtual ser menor que tentativasMaximas.

Como o valor de tentativasAtual é igual a 1 e tentativasMaximas=3, o loop só terá opção de saída quando erros acontecerem.

Inclusive, você pode deixar o código assim:

while(tentativasAtual <= tentativasMaximas) {
        var loginInformado = prompt("Informe seu Login ");
        var senhaInformada = prompt("Informe sua senha ");
        if(loginInformado == loginCadastrado && senhaInformada == senhaCadastrada) {
            alert("Bem-vindo ao sistema " + loginInformado);
           break;
        } else {
            alert("Você errou, tente novamente");
            tentativasAtual++
        }
    }

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