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

Apenas dá uma tentativa de login

Alguém poderia me ajudar?

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

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


    var numeroMax = 3
    var numeroAtual = 1

 while (numeroAtual <= numeroMax ) {
    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");

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

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

    if (numeroAtual= 3){
        alert("Login inválido");
    } else {
        alert ("tente novamente")
    }    
    }
numeroAtual= numeroAtual+ 1
}
</script>
1 resposta
solução!

Izabella,

seu código só faz uma tentativa porque você utilizou um comparativo 'if' que atribui valor 3 à variável 'numeroAtual' porque usa '=':

if (numeroAtual= 3)

O correto seria usar '==' para comparar:

if (numeroAtual == 3)

Depois que corrigir isto, seu código passará a perguntar 3 vezes. O problema é que se acertar na primeira ou na segunda tentativa, o código continua a rodar, e solicitará o login e a senha de novo, mesmo se já tiver acertado. Então também terá que acrescentar algo que pare sua execução. Ficaria assim, com as duas correções:

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

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

    var numeroMax = 3;
    var numeroAtual = 1;

    while (numeroAtual <= numeroMax) {
        var loginInformado = prompt("Informe seu login");
        var senhaInformada = prompt("Informe sua senha");

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

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

            numeroAtual = 3;

        } else {

            if (numeroAtual == 3){
                alert("Login inválido");

            } else {
                alert("tente novamente");
            }    
        }

        numeroAtual = numeroAtual + 1;

    }

</script>

Fora isto, cabem aqui as mesmas recomendações que fiz em outra postagem, todas de boas práticas:

  • procure indentar bem seu código. Neste caso, tudo que vem depois do 'while' ficou um pouco bagunçado;
  • use ponto e vírgula em todo fim de linha de comando;
  • não deixe espaço entre funções e instruções e seus parênteses de argumentos.

Bons estudos!