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

Resolvendo com "do"

Depois de quebrar a cabeça, decidi procurar uma "solução alternativa". Só queria compartilhar, talvez ajude alguem hahaha

<meta charset="UTF-8">


<script>
    function pulaLinha() {

    document.write("<br>");
    }

    function mostra(frase) {
    document.write(frase);
    pulaLinha();
    }

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

    var tentativaLogin = 1

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

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

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

        alert("Login inválido. Restam: " + tentativaLogin + " tentativas.");
        tentativaLogin = tentativaLogin + 1;


    } 
        } while (tentativaLogin < 4)

    if(tentativaLogin > 3){

    alert("Impossivel logar por excesso de tentativas. Tente novamente mais tarde.");

    }

</script>
2 respostas
solução!

Oi, Guilherme, como vai?

Isso mesmo! Boa solução.

Obrigado por compartilhar aqui no fórum, com certeza irá ajudar muitas pessoas.

Uma melhoria que poderia ser feita no código seria adicionar uma variável chamada maximoTentativasDeLogin com o valor de 3, com ela seria possível calcular corretamente o número de tentativas restantes. Além disso, poderíamos utilizá-la nas condições do while e do if que verifica se ultrapassou o número de tentativas permitidas.

O código com essas alterações ficaria assim:

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

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

    var tentativaLogin = 1
    var maximoTentativasDeLogin = 3;

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

        if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
            alert("Bem-vindo ao sistema " + loginInformado);
            break
        } else {
            alert("Login inválido. Restam: " + (maximoTentativasDeLogin - tentativaLogin ) + " tentativas.");
            tentativaLogin = tentativaLogin + 1;
        } 
    } while (tentativaLogin <= maximoTentativasDeLogin)

    if(tentativaLogin > maximoTentativasDeLogin){
        alert("Impossivel logar por excesso de tentativas. Tente novamente mais tarde.");
    }
</script>

Perceba que com a utilização da variável maximoTentativasDeLogin o código também se tornou mais legível.

Espero ter ajudado.

Parabéns pelo empenho nos estudos!

E no começo é mais difícil mesmo, mas continue praticando.

E caso tenha quaisquer comentários ou dúvidas a respeito de alguma aula ou desafio, pode postar aqui no fórum que vamos te responder!

Abraços e bons estudos!

Olá, Murilo.

Perfeito! Não pensei nisso, mas realmente, ficou muito mais simples!

Obrigado por trazer essa visão.

Abraços!