3
respostas

Não entendi o while...

Segue a resolução do professor:

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;

Minha dúvida é, se após um login com sucess o "contador" tentativaAtual é igual ao máximo de tentativas (que é 3), então ficaria:

Enquanto 3 for menor ou igual a 3, execute o bloco de instruções abaixo.

Como ele para na primeira tentativa correta?

3 respostas

Acho que me achei aqui...ou não rs... vou postar o código completo pra ficar mais fácil de entender minha dúvida...

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

Então ali no final do while ele adiciona +1:

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

dai sim o número de tentativas, caso o login fosse feito com sucesso, após receber o número máximo, ganharia +1 e sendo 4 não seria mais menor nem igual a 3 (número máximo de tentativas.

Será que entendi??

(e agora que fui ler o comentário "Lá embaixo vai incrementar +1")

É isso ai, é só ler que aprende hehe :P

Olá, Guilherme! Tudo bem contigo?

Boa! Mandou bem!

Quando inserirmos o login e a senha correta, logo após já é inserido todas as tentativas em tentativaAtual = maximoTentativas para que possa sair desse looping ao bater em tentativaAtual = tentativaAtual + 1, pois já atingiu o máximo de tentativas

Pegou a ideia!

Se tiver mais alguma dúvida, nos procure!

Um abraço e bons estudos

Oh, muito obrigada por esse tópico! Ainda não estava entendendo as coisas muito bem... Mas depois de ler eu percebi que se colocar o 'tentativaAtual' levando ela pra um número maior que o 5, é possível que, se estiver correto, ele pare de aparecer o resto das tentativas! :D massaaaaaaaaaaaaaaa!