Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Tentei fazer de algumas maneiras diferentes, mas só dessa maneira não deu certinho. Qual foi o meu erro?

<meta charset="UTF-8">
<script>

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

    var numeroTentativas = 3;
    var tentativas = 1;

    while (tentativas <= numeroTentativas){

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

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

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

            tentativas = numeroTentativas
        }

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

            if (tentativas == 3) {

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

        }
    }
</script>
2 respostas

Olá Layla tudo bem ?

Acabei de testar seu código aqui e ele tem uma pequena observação do qual impossibilita dele compilar corretamente. Veja que você abriu o while fechou ele no final do código , mas após do while você abriu alguns if e alguns desses if você esqueceu de fechar pode considerar que o último if não foi fechado da maneira correta :

if (tentativas == 3) {

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

Sendo assim é só acrescentar as chaves "}" para fechar :

if (tentativas == 3) {

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

Agora é só você corrigir isso , salvar o código e testar. =)

Espero ter ajudado , qualquer dúvida sinta-se a vontade para compartilhar aqui no fórum , ficaremos felizes em poder te ajudar. =)

Abraços e bons estudos.

solução!

Oi Layla, tudo bem?

Rodei o seu código aqui e percebi que está faltando um { no final, para fechar o comando while.

Além disso, o seu comando while está infinito, pois quando o usuário acerta o login, você colocou: tentativas = numeroTentativas. Mas pense comigo, o número de tentativas será 3 (já que você igualou com a variável numeroTentativas), mas ainda assim vai continuar no loop do while, pois a condição é:

while (tentativas <= numeroTentativas)

3 ainda é <= 3, correto? Por isso, vai ficar infinito! Para corrigir isso, podemos colocar apenas o sinal de menor, sem ser menor igual:

while (tentativas < numeroTentativas)

Agora, 3 não é menor que 3, logo, ele sairá do loop!

Outra observação é que quando o usuário erra seu login e senha, precisamos aumentar o número de tentativas em 1, pois significa que ele errou e vai tentar de novo, portanto o código ficaria assim:

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

          tentativas = tentativas + 1;
      // Ou também tentativas += 1;
     //  Ou também tentativas++;

          if (tentativas == 3) {
                alert("Login inválido. Tente novamente");
       }
}

Dessa maneira, o número de tentativas aumenta conforme ele erra o seu login.

Espero ter ajudado!