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

Eu não entendi muito bem a solução do professor sobre a impressão dos números de 30 a 40.

Eu não entendi bem a logica do if nesse caso e o incremento. Alguem ajuda?

<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;
        }
        if(contador == 37) {    
            contador = contador + 1;
        }
        else {
        mostra(contador);
        contador = contador + 1; 
        }
      }

    mostra("FIM");

</script>
3 respostas
solução!

Então ele vai ler os numeros de 30 a 40 com exceção do 33 e 37 e o professor para evitar com que esses numeros fossem imprimidos pela função mostra ele verifica atravês dos if se o numero do contador atual do laço de repetição é 33 ou 37 caso seja o contador vai ser incrementado e vai imprimir o proximo numero evitando imprimir o 33 e o 37, segue um codigo comentado para ficar mais facil a explicação

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
    }

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

    var contador = 30;
    // laço de repetição para imprimir os numeros e so vai parar quando o contador for igual maior que o 40 ou seja pelo menos 41
    while(contador <= 40) {

        // caso o contador seja 33 ou 37 ele vai receber o incremento de 1 e pular para o proximo numero
        if( contador == 33 ) {
        contador = contador + 1;
        }
        else if(contador == 37) {    
            contador = contador + 1;
        }
        else {
        // vai imprimir o contador desde que não seja 33 e 37
        mostra(contador);
        contador = contador + 1; 
        }
      }

    mostra("FIM");

</script>

Oi Suelen,

O primeiro detalhe será analisar o que está acontecendo com o while, ele está executando um laço de repetição com base na regra entre os parênteses que é enquanto o contador for menor ou igual a 40 continue executando. Para que não fique um laço de repetição infinito precisamos alterar o valor da variável de controle que é o contador, e para isso precisamos fazer a seguinte construção dentro do while :

contador = contador + 1; (contador recebe o valor atual dele + 1, lembre-se que cada linha de programação é executada da direita para a esquerda.)

O desafio é mostrar os números de de 30 a 40 e pular a exibição do 33 e 37, na resolução do professor ele ficou verificando se era 33 ou 37 e se fosse ele pulava o número fazendo o contador ser incrementado em 1 e assim ir para o próximo laço sem entrar no else para exibi-lo

Obrigada, Rodrigo e Guilherme!

Acho que o ponto que faltava para eu entender era isso do "pulo" quando o contador chegava no numero que não deveria ser impresso.

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