8
respostas

Login

 Alterando para permitir 3 erro e continuar quando acertar.
<meta charset="UTF-8">
<script>

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

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

    while (loginCadastrado = false); {
     if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

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

        alert("Login inválido. Tente novamente");
         }
    }   
</script>

Não consegui encontrar a solução adequada.

8 respostas

Oi Dorival!

Olha, pelo que entendi, você deve comparar se o login e a senha informadas são iguais às registradas nas variáveis loginCadastrada e senhaCadastrada, certo? Pensando por aí, a linha de código while (loginCadastrado = false) não me faz muito sentido, uma vez que essa instrução não vai comparar as informações das variáveis.

Eu escrevi desse jeito e funcionou, veja se te ajuda

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

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

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

    while(contador <= 2) {

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

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

        } else if (loginCadastrado != loginInformado && senhaCadastrada != senhaInformada && contador < 2) {

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

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

        } else if (contador == 2) {

            alert("Você digitou o login errado mais de 3 vezes! Usuário bloqueado")
        }

    }

</script>

Coloquei uma instrução a mais no final, caso o usuário erre três vezes, aparece um alert informando que ele não tem mais tentativas de login.

Espero ter te ajudado, qualquer coisa, estamos aí!

Boa! Obrigado.

Havia feito de uma forma, mas percebi que faltou a mensagem de bloqueio. Depois complemento no final.

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

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

    while(cont <= 1){

        alert("Login inválido. Tente novamente");
            cont++;
            var loginInformado = prompt("Informe seu login");
            var senhaInformada = prompt("Informe sua senha");

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

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

}

Valeu. estou tentando entender - obrigado

boa tarde Dorival , segue como consegui realizar a tarefa.

Corrigindo, tinha esquecido de testar quando o login der certo. coloquei o break, agora sim.

Boa noite, eu fiz desse jeito!

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

var loginCadastrado = "erwin";
var senhaCadastrada = "321";
var loginInformado = prompt("Informe seu login");
var senhaInformada = prompt("Informe sua senha");
var contador = 3;
var tentativas = 3;

while (contador >= 0) {
    if ( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
        mostra("<h1> Sistema Liberado! " + loginInformado + " </h1>");
        contador = 0; //zera contador pra sair do laço
    } else {
        alert("Login inválido. Tente novamente: Restam [ " + tentativas + " ] Tentativas");
        var loginInformado = prompt("Informe seu login");
        var senhaInformada = prompt("Informe sua senha");
        tentativas = tentativas - 1;
    }

    if (tentativas == 0) {
        alert("Usuário Bloqueado!");
        mostra("<h1 style='color: red;'> Sistema Bloqueado! </h1>");
        contador = 0; //zera contador pra sair do laço
    }

    contador = contador - 1;
}
</script>

Fala, Dorival!

O meu código não usou loop, mas eu consegui resolver utilizando if's e elses um dentro do outro:

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

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

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

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

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

        alert("Login inválido. Tente novamente (tentativas restantes: 2)");

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

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

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

            if (loginCadastrado == loginInformado && senhaCadastrada == senhaInformada) {
                alert("Bem-vindo ao sistema, " + loginInformado);
            } else {
                alert(`Desculpe. Número de tentativas esgotado!`)
            }
        }
    }   
</script>

Sempre é uma boa ideia revisitar o código e refatorá-lo, tornando-o mais simples, e isso eu vou fazer baseado nos loops do professor e dos colegas. Espero ter contribuído.