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

While - Numeros pares

A condição <= 100 não deveria encerrar o loop? Neste caso ele foi até 200.

<meta charset="utf-8">

<script>

    function pulaLinha(){
        document.write("<br>");
    }

    function mostra(saidaTela){
        document.write(saidaTela);
        pulaLinha();
    }

    var numPares = 1;

    while(numPares <= 100){

        mostra(numPares * 2);
        numPares++;
    }

    mostra("FIM");


</script>
4 respostas

Ele encerra o loop quando numPares é 100, mas no "mostra" você multiplica o numPares por dois, por isso ele chega até 200.

mostra(numPares * 2);

Mas a condição <= 100 não deveria ser explicita como checar o valor da operação como inteiro e avaliar o resultado ( numPares 100) == (RESULTADO mostra 100) e encerrar o while? Mesmo havendo multiplicação ?

Entendi o que você explicou, só fiquei confuso pois achei que a condição ditava também a regra do fim para qualquer operação no document.write(numPares);

Obrigado Fernando pela resposta.

O seu while percorre uma variável de 1 até 100, certo? A cada execução do while, você pega o valor atual de "numPares" e multiplica ele por 2 e mostra esse valor. Mas essa conta não altera o valor de "numPares", o que altera o valor dessa variável é a linha:

numPares++;

++ é a mesma coisa que

numPares = numPares + 1;

Ou seja, seu while será executado 100 vezes e mostrará os cem números multiplicados por dois.

solução!

Seu while vai de 1 a 100, mas na hora de exibir você exibe cada número multiplicado por dois:

1 X 2 = 2
2 X 2 = 4
3 X 2 = 6
...
100 X 2 = 200

Veja que seu loop vai de 1 a 100 perfeitamente.

A instrução mostra(numPares * 2); não modifica a variável numPares, ela continua sendo incrementada de 1 em 1. O que o mostra faz é pegar o valor atual de numPares e multiplicar por depois.

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