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

Por que o while não está repetindo no código abaixo ?

<meta charset="UTF-8">

<script>

    var loginCadastrado = "nikota";
    var senhaCadastrada = "moniquesk8";

    contador = 1;

    while(contador <= 3){

        var loginInformado = prompt("Digite o login");
        var senhaInformada = prompt("Digite a senha");

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

        }else{

            if(contador == 3){
                mostra("Você usou o máximo de tentativas");

                }else{

                mostra("Senha Inválida, tente novamente.")
        }
    }

    contador++;
}
    mostra("Bem vindo ao site");

</script>
1 resposta
solução!

Oi, Luis. Tudo bem?

Nesse caso a função mostra está sendo usada sem ela ter sido declarada no código. Aqui você poderia mudar as partes que usam o mostra por alert que funcionaria.

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

        }else{
            if(contador == 3){
                alert("Você usou o máximo de tentativas");

            }else{
                alert("Senha Inválida, tente novamente.")
            }
        }
        contador++;
    }
    alert("Bem vindo ao site");

Porém, perceba que mesmo se você falhar nas 3 tentativas você ainda recebe a mensagem de "Bem vindo ao site", para resolver isso você pode simplesmente mudar o alert("Bem vindo ao site"); de lugar, deixando ele antes do break:

if(loginInformado == loginCadastrado && senhaInformada == senhaCadastrada){
            alert("Bem vindo ao site");
            break;

        }else{
            if(contador == 3){
                alert("Você usou o máximo de tentativas");

            }else{
                alert("Senha Inválida, tente novamente.")
            }
        }
        contador++;
    }

Dessa forma, caso o login e a senha estejam corretos, será exibido a mensagem de "Bem vindo ao site" e o programa será encerrado.

Espero ter ajudado. Qualquer dúvida é só avisar!