5
respostas

Por favor, poderiam verificar se esta lógica procede?

<meta charset="UTF-8">

<script>

    function bemVindo(){
        alert("Bem vindo ao sistema!");
    }

    var usuarioCadastrado = "alura";
    var senhaCadastrada = "alura321";

        var usuario = prompt("Informe o seu usuario: ");
        var senha = prompt("Informe sua senha: ");

        if((usuario == usuarioCadastrado) && (senha == senhaCadastrada)){
            bemVindo();

        } else {

            var contador = 1;
            while(contador < 3){

                alert("Dados de entrada inválidos, tente novamente! Tentativa " +contador);
                contador ++;
                prompt("Informe o seu login: ");
                prompt("Informe sua senha: ");

                if((usuario == usuarioCadastrado) && (senha == senhaCadastrada)){
                    bemVindo();
                }
            }
            alert("Número máximo de tentativas excedido!");
        }
    document.write("FIM");

</script>
5 respostas

Oi,

Funcionou corretamente,

Eu só alteraria aqui:

if((usuario == usuarioCadastrado) && (senha == senhaCadastrada))

para

if(usuario == usuarioCadastrado && senha == senhaCadastrada)

mas dos dois jeitos funciona.

Vlw!!

Obrigada pela atenção, Wagner. Bons estudos!

Obrigado!

Pra você também!! Bons estudos!

O ideal acredito que seria colocar a var de usuário e senha dentro do loop do "while".

O prompt da forma que esta consegue entregar alguma informação para a var de login e senha?

Acredito que deveria colocar a informação completa ali no while ao invés do prompt pelado:

        var usuario = prompt("Informe o seu usuario: ");
        var senha = prompt("Informe sua senha: ");

Realmente, fiz o teste aqui e acontece o seguinte:

Se você erra a 1º tentativa, mesmo que acerte na 2º o seu sistema vai considerar como errado.

Acontece que ele vai checar se o login e senha são iguais, porem seu sistema não muda ele depois da primeira vez então sempre vai dar errado se errou na primeira.

Colocando a alteração de variável dentro do while (que mencionei no post anterior) até tenta arrumar isso, porem o while continua repetindo e pedindo a senha denovo e denovo... até inevitavelmente acabarem as tentativas.

Então o ideal é realmente seguir a lógica do exemplo com o while como principal ao invés do if como nesse caso.

<meta charset="UTF-8">

<script>

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

    var maximoTentativas = 3;
    var tentativaAtual = 1;

    while(tentativaAtual <= maximoTentativas) {

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

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

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

            tentativaAtual = maximoTentativas; // acertou, então faço o gasto de todas as tentativas para sair do loop. Lá embaixo vai incrementar + 1! 

        } else {

            if (tentativaAtual == 3) {
                alert("Número permitido de tentativas ultrapassado!");
            } else {
                alert("Login inválido. Tente novamente");
            }
        }

       // vai para a próxima tentativa
        tentativaAtual = tentativaAtual +1  
    }

</script>

Na minha tentativa o código também ficou meio estranho e com uns bugs, esse exercício foi realmente desafiador hahaha

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software