3
respostas

Porque neste caso a variavel precisa estar inserida em "while"?

Oi gente, sou bem iniciante em programacão . Alguem pode me explicar porque esta errado a variavel vir antes do "while". Não consegui entender o porque da logica estar errada.

<meta charset="UTF-8">
<script>

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

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

    var maximoDeTentativas = 3;
    var tentativaAtual = 1;

while(tentativaAtual <= maximoTentativas) {


        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>

3 respostas

Fala Leo, tudo bem?!

Então, não entendi sua dúvida. Você se refere a qual variável?

O professor escreve o codigo com a variavel a seguir dentro da tag "while":

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

Porque se eu colocar antes n dá no mesmo?

Então, se você deixar fora e acertar a senha e o login o código irá funcionar, mas se você errar o login e a senha e: var loginInformado = prompt("Informe seu login"); var senhaInformada = prompt("Informe sua senha");

estiverem fora do While então nunca será perguntado novamente ao usuário o login e a senha. É por isso que fica dentro do While, para caso o usuário erre o login ou a senha ele tenha a possibilidade de informar novamente.

** Apenas detalhando o que acontece, se você deixar fora e o usuário errar, o while irá repetir o laço, mas não fará a pergunta e portanto não irá alterar o valor das variáveis de login e senha e portanto quando cair no if dentro do while o valor estará errado, ele ficaria aí em loop infinito, mas nesse caso ele vai estourar o limite de 3 tentativas e sair do while

*** qualquer dúvida fique à vontade para perguntar!