1
resposta

33 e 37 Porque?

<meta charset="utf-8">

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

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

    var contador = 30;

    while(contador <= 40) {
        if(contador == 33) {
            contador = contador + 1;
        }  
        else if(contador == 37) {
            contador = contador + 1;
        }

        else {

        mostra(contador);
        contador = contador + 1;
        }
    }

    mostra('Fim');
</script>

A minha dúvida é porque a condicional if(contador == 33); e else if(contador == 37); faz com que os números 33 e 37 sejam excluídos. Para mim não está fazendo sentido.

Alguém pode ajudar?

1 resposta

Boa tarde Flávio! Vou tentar te explicar.

O seu contador se inicia em 30, e a condição passada é: Enquanto o contador for menor/igual a 40

var contador = 30;
while(contador <= 40) 

A outra condição dentro da primeira condição é: "Se o numero for 33 apenas adicionar +1 ao contador, senão se o numero for 37 apenas adicionar +1 ao contador. Repare que ele não pede para imprimir nada dentro desses dois ifs

if (contador == 33) {
  contador = contador + 1;
} else if (contador == 37) {
  contador = contador + 1;
}

Já a ultima condição é: Senão (Senão o que? Se não for nem a primeira nem a segunda condição) mostre o contador e adicione +1 a ele

  } else {
    mostra(contador);
    contador = contador + 1;
  }

Chegando a 40 ele vai encerrar a operação, pois foi essa a primeira condição quando você utilizou o while. Então vai imprimir todos os numeros entre 30 e 40 menos o 33 e o 37.

Espero que assim você consiga compreender!