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

Duas dúvidas - Variáveis e incremento

1º dúvida - Essas duas variáveis continuam sendo globais mesmo estando dentro do While, certo? Só seria local se estivesse dentro de uma função. Então, poderia deixar fora do While? var loginInformado = prompt("Informe seu login"); var senhaInformada = prompt("Informe sua senha");

2º dúvida - Poderia colocar esse incremento (tentativaAtual = tentativaAtual +1) dentro do else? } else { alert("Login inválido. Tente novamente"); tentativaAtual = tentativaAtual +1; }

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

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

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

</script>
3 respostas

Ozir, boa tarde!

Sobre a primeira dúvida, não poderia colocar fora do while, porque você quer que toda que vez que ele tente apareça novamente na tela para ele inserir os dados novamente, se você tirar do laço de repetição ele não ira perguntar novamente quando você errar.

Sobre a segunda, pode sim colocar no else, o resultado será igual!

Espero ter ajudado! Bons estudos!

solução!

Boa tarde, Ozir! Como vai?

Vou responder suas dúvidas por partes pra facilitar!

1º dúvida - Essas duas variáveis continuam sendo globais mesmo estando dentro do While, certo? Só seria local se estivesse dentro de uma função. Então, poderia deixar fora do While? var loginInformado = prompt("Informe seu login"); var senhaInformada = prompt("Informe sua senha");

Sim, o JavaScript só tem dois tipos de escopo: global e funcional! Portanto, mesmo as variáveis sendo declaradas dentro do while elas estão em escopo global! Mas, nesse caso as linhas de código que vc destacou não poderiam ser declaradas fora do while pq a intenção é que as perguntas sejam repetidas a cada iteração que o while faz!

2º dúvida - Poderia colocar esse incremento (tentativaAtual = tentativaAtual +1) dentro do else? } else { alert("Login inválido. Tente novamente"); tentativaAtual = tentativaAtual +1; }

Sim, mas aí dentro do if vc teria que passar a fazer tentativaAtual = maximoTentativas + 1.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Obrigado, Felipe e Gabriel, por esclarecer minhas dúvidas. Abraço!