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

Meu loop não para

<meta charset="utf-8">
<script>
    var loginCadastrado = "alura";
    var senhaCadastrado = "alura123";
    var limiteMaximo = 3;
    var tentativaAtual = 1;

    while (tentativaAtual <= limiteMaximo){


    var loginInformado = prompt("informe seu login: ");
    var senhaInformada = prompt("informe sua senha: ");
    if( loginCadastrado == loginInformado && senhaCadastrado == senhaInformada) {

        alert("Bem-vindo ao sistema");
        tentativaAtual = limiteMaximo;//aqui fecha o loop do while caso eu acerte.

    }else{
        if( tentativaAtual == 3){

        alert("limite máximo de tentativas atingido !");

    }else{

        alert("lógin inválido.Tente novamente");
        tentativaAtual=tentativaAtual++

        }        
    }
}

meu loop não para , além disso só mostra a mensagem de login inválido no primeiro erro

1 resposta
solução!

Oi Davi

O primeiro detalhe é sobre o else, só pode ter 1, você pode criar um else if e depois por fim um else.

Outro detalhe, mesmo se construir com o else if assim } else if( tentativaAtual == 3) { quando chegar na terceira tentativa ele sempre irá entrar ai, ou se na ultima tentativa você acertar você está sempre atribuindo tentativaAtual = limiteMaximo; que é sempre 3. Assim seu while ficará em um loop infinito já que é menor ou igual a 3.

fiz as alterações:

<meta charset="utf-8">
<script>
    var loginCadastrado = "alura";
    var senhaCadastrado = "alura123";
    var limiteMaximo = 3;
    var tentativaAtual = 1;

    while (tentativaAtual <= limiteMaximo){
        var loginInformado = prompt("informe seu login: ");
        var senhaInformada = prompt("informe sua senha: ");
        if( loginCadastrado == loginInformado && senhaCadastrado == senhaInformada) {
            alert("Bem-vindo ao sistema");
            tentativaAtual = 4; // seguindo sua lógica teria que jogar um número maior que 3 pra sair do loop
        } else if( tentativaAtual == 3) {
            alert("limite máximo de tentativas atingido !");
            tentativaAtual++;  // aqui é necessário incrementar 1 pra ele ficar maior que 3 e sair do loop
        } else {
            alert("lógin inválido.Tente novamente");
            tentativaAtual++;
        }
    }
</script>