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

"Simulando uma tela de login" - qual a logica por trás de ele contar quantas vezes eu tentei?

<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>

Esse é o código, galera. Ele funciona, mas eu não entendi como é que ele calcula quantas vezes eu tentei. :/

7 respostas

Olá, Luciano!

Seu código não está aparecendo.

Para simbolizar que seu texto é um trecho de código, você deve apertar TAB ou digitar 4 espaços em branco no começo de cada linha, e assim, o texto ficará na cor marrom claro.

valeu, Matheus! agora dá pra ver, né?

Agora dá pra ver sim, Luciano.

Respondendo à sua pergunta, a lógica de se contar quantas vezes você tentou efetuar o login é que, como a variável que controla o laço de repetição é a variável tentativaAtual ( while(tentativaAtual <= maximoTentativas) ), uma vez que você exceda as 3 tentativas, o programa se encerra. Por isso precisamos contar as tentativas, para terminar o programa se você não acertar o login em até 3 tentativas. Isso foi mera definição do instrutor.

Espero ter ajudado!

Continue firme em seus estudos!

ficou confuso ainda, mas eu acho que foi minha pergunta que não tava muito clara. O que eu queria saber é em que parte do codigo fica claro que deve ser contado que tentei 3 vezes.

Mas acho que identifiquei o que é, acontece que o loop dos comando acontecem dentro do while ele se repete até fechar a conta de tentativas, pois está sendo somado la embaixo no

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

tentativaAtual = tentativaAtual +1

solução!

Olá Luciano, tudo bem?

1.Analisando o seu código, a lógica usada é a seguinte: enquanto (ou while) o número que corresponde a tentativa atual for menor ou igual ao número máximo de tentativas, será disponibilizado o formulário de login e senha.

2.Quando o login e senha é informado, é feita uma verificação através do primeiro if, onde, se o login e senha forem válidos, ele altera o número da tentativa atual para o número máximo de tentativas apenas para finalizar a execução. Visto que a execução do while está condicionada ao número máximo de tentativas.

3.Se a verificação de login falhar, é somado 1 ao número da tentativa atual. E assim todo o processo repete até que o número da tentativa atual atinja o número máximo.

eu consegui desse jeito, se acerta ele ja vai direto pro fim.

mais estou tento um problema no loop , ele funciona certo mais quando termina ele mostra 3 alerta de FIM!!!
 como resolver ??

segue o código:

seu codigo não veio tem que dar um tab pra o texto ficar vermelho e visivel no forum.

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