1
resposta

Porque não há repetição dos números 34 e 38 com o script informado

Uma coisa que não entendo é o porque ele não repete o número 34 e o número 37 já que inserimos que quando for 33 ele deve colocar 33+1 e quando for 37 ele deve colocar 37+1.

Para mim, da a impressão que ele faria toda a contagem de 30 à 40, e no lugar dos números que queremos que ele não mostre, instruimos que ele mostre outro número no lugar. Portanto, com o código indicado ficaria da seguinte maneira:

30 31 32 34 34 35 36 38 38 39 40 FIM

Alguém pode me explicar o porque não repete os números conforme acima?

1 resposta

Boa noite, Bruna! Como vai?

O trecho do código ao qual vc se refere é esse aqui:

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

Veja que em ambos os casos é feito contador = contador + 1! Sendo assim, quando o contador vale 33, o JS entra no primeiro if e já altera o valor da variável contador que passa a valer 34! Em seguida, o JS vai pro segundo if e como o valor de contador é 34, ele cai no else imprimindo 34 na tela e depois fazendo contador = contador + 1 fazendo o valor de contador passar a ser 35!

Depois disso, 36 é impresso!

Por fim, quando contador passa a valer 37, o JS vai cair no segundo if e fazer o já conhecido contador = contador + 1, alterando o valor da variável contador que passa a valer 38! Como caiu no if o JS passa direto do else não imprimindo nada e dá início à um novo ciclo do laço de repetição! Como dessa vez contador vale 38, o JS cai somente no else, mostrando 38 na tela e atualizando o valor da variável contador para 39!

O resto é história...

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, minha aluna!

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