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

Usei uma lógica simples, com adição de bloqueio ao usuário (caso o limite for atingido)...

Opa :) Quando acompanhei o exercício, e o código exemplo passado para nós, percebi que era possível realizá-lo apenas criando um while e um var. Criei uma variável cont (contador), para que contasse as tentativas do usuário, e inseri todo o código do exercício dentro do while (que estabelece o total de tentativas).

Com isso, criei um if else dentro do while também, para aumentar a quantidade do contador da tentativa em 1, caso o login for inválido. Caso não for, será finalizado normlamente (para finalizar, foi adicionado valor 3 ao contador, pois é o nosso valor total para a finalização do sistema).

Com o aumento da quantidade, enfim chegará em 3 tentativas. Tendo isso em mente, criei um else if dentro do while, e sua função seria informar ao usuário que o limite de tentativas foi atingido, e travar esse aviso (alert) na página. Contudo, dentro desse meu if, foi criado mais um while atribuindo o true, visto que enquanto o meu while for verdadeiro, o aviso não sumirá.

<script type="text/javascript">
    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";

    var cont = 1; //cont ou "tentativa", define a tentativa inicial do usuário. 
    while(cont<=3) { //define o limite de cont, ou seja, tentativa.

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

        if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
            alert("Bem-vindo ao sistema " + loginInformado);
            cont = cont+3; //recebe número total para finalizar.

        }else if(cont == 3){
                while(true) {
                    alert("Login inválido. Limite de tentativas atingido"); //apenas para informar o limite quando atingido
                    cont = cont+3; //recebe número total para finalizar.
                }
        } 
        else {
            alert("Login inválido. Tente novamente");
            cont = cont+1; //caso o login for inválido, será feito o "loop".
        }
    }

</script>
2 respostas
solução!

Parabéns Sanmir, só uma sugestão, modifiquei seu código retirando o laço while(true) e ficou assim:

<script type="text/javascript">
    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";

    var cont = 1; //cont ou "tentativa", define a tentativa inicial do usuário. 
    while(cont<=3) { //define o limite de cont, ou seja, tentativa.

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

        if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
            alert("Bem-vindo ao sistema " + loginInformado);
            cont = cont+3; //recebe número total para finalizar.

        }else if(cont == 3){
            alert("Login inválido. Limite de tentativas atingido"); //apenas para informar o limite quando atingido
            cont = cont+3; //recebe número total para finalizar.

        } 
        else {
            alert("Login inválido. Tente novamente");
            cont = cont+1; //caso o login for inválido, será feito o "loop".
        }
    }

</script>
Ficou um pouco diferente dos que vi no forum.
<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);

mostra("fim")

    } else {

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

    var loginInformado2 = prompt("Informe seu login");
    var senhaInformada2 = prompt("Informe sua senha");

    if( loginCadastrado == loginInformado2 && senhaCadastrada == senhaInformada2 ) {

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

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

    var loginInformado3 = prompt("Informe seu login");
    var senhaInformada3 = prompt("Informe sua senha");

    if( loginCadastrado == loginInformado3 && senhaCadastrada == senhaInformada3 ) {

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

        alert("Login inválido. Este login está bloqueado");
    }

</script>

insira seu código aqui