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

Exercicio loop login: ele apresenta mensagem de erro 3 vezes e não volta para pedir login e senha

<meta charset="UTF-8">
<script>
function pulaLinha(){
    document.write("<br>");
}

function mostra(frase){
    document.write(frase);
    pulaLinha();

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

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

    var tentativaAtual = 1;
    var maxTentativas = 3;

    while (tentativaAtual <= maxTentativas){

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

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

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

    }

    tentativaAtual = tentativaAtual + 1;

    }
</script>
1 resposta
solução!

Olá Melissa,

o problema está na sua repetição dentro do while.

while (tentativaAtual <= maxTentativas){

    if ( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
        alert("Bem-vindo ao sistema " + loginInformado);
    } else {
        alert("Login inválido. Tente novamente");
    }

    tentativaAtual = tentativaAtual + 1;

}

Note que dentro do while, se o login e a senha informadas estiverem iguais ao login e senha cadastrados, então ele mostra a mensagem de bem vindo ao sistema, Caso contrário, se ele errou o login ou a senha, ele só mostra a mensagem de login inválido. Logo em seguida ele só aumenta a quantidade de tentativas e repete tudo novamente.

Ou seja, em nenhum momento dentro da repetição é informado ao navegador que ele deve perguntar novamente o login e senha. Então ali no else, depois de fazer o alert de login inválido, você precisaria perguntar novamente as informações para o usuário, por exemplo:

alert("Login inválido. Tente novamente");
login = prompt("Informe um novo login");