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

Duvida referente ao exercicio

me tirem uma duvida por favor, no caso do exercício a baixo

Que tal uma dificuldade um pouco maior? Imprima todos os números entre 30 e 40 (inclusive 30 e 40), porém os números 33 e 37 não devem ser impressos!

segue o código a baixo:

var numero = 30; // variavel numero vai receber =30;

while(numero <= 40) {// em quanto o 30 for menor ou igual a 40 faça:

if( numero != 33 &&numero != 37) {

// se o 30 for diferente que o 33, e diferente q o 37 // sim é diferente então :

mostra(numero); //mostra o 30...

}

numero = numero + 1; //depois 30 recebe ele mesmo + 1; }

creio que até ai esta tudo ok, o problema é que não estou entendendo a Lógica do código.

1° se o numero 30 for diferente que o numero 33 e 37, mostra o 30 Ok.... se não fosse diferente ele não iria aparecer o numero 30 na tela certo?ok

2° agora por que o numero 33, e 37 não aparece lá? n tem nem um comando falando "dont show" "dont appear" não apareça" qual seria a lógica por traz do código? não estou conseguindo ler, no caso seria já que o programa sabe que é diferente que o 30(numero) então ele não precisa mostrar?

2 respostas
solução!

Olá Gustavo

Veja bem, a variável numero vale inicialmente 30 o laço de repetição while vai se repetir enquanto a variável numero for menor ou igual a 40 (menor que 41), o laço de decisão if vai ser executado se a variável numero for diferente de 33 e 37, logo qualquer numero entre 30 e 40 diferente de 33 e 37 vai passar pelo laço if que simplesmente mostra a variável numero, e no final incrementa +1 a variável numero, então em 30, vai executar while e o if, e será mostrado na tela, o mesmo vale para 31, 32, 34, 35, 36, 38, 39 e 40, porque todos cumprem a condição do laço while e do laço if, mas não para 33 e 37 porque não cumprem a condição do laço if, nem qualque numero menor 30 ou maior que 40, porque não cumprem a condição do laço while.

Espero ter ajudado :D

Boa noite, Gustavo! Como vai?

Bom, primeiro eu gostaria de tornar a sua forma de entender o código mais apurada no que diz respeito a variável numero. Por exemplo, quando vc escreve:

while(numero <= 40) {// em quanto o 30 for menor ou igual a 40 faça:

Na realidade, a forma de ler isso é:

while(numero <= 40) {// enquanto o valor guardado na variável numero for menor ou igual a 40 faça:

Como inicialmente o valor guardado na variável número é 30 que por sua vez é menor ou igual a 40, então o JavaScript entra no laço for.

Em seguida, temos o if, que deveria ser lido assim:

if (numero != 33 && numero != 37) { // se o valor guardado na variável numero for diferente de 33 e diferente de 37, então:

     mostra(numero); //mostra o valor guardado na variável numero.
}

Veja que a função mostra() só será executada quando o valor guardado na variável numero for diferente de 33 e diferente de 37, portanto é justamente o if que irá decidir se o valor guardado na variável numero deve ser mostrado ou não. Nos casos em que o valor guardado na variável numero for diferente de 33 e de 37, então o que está dentro do if será executado, nos casos em que essa condição no for atendida, então o que está dentro não é executado.

Pegou a ideia?

Qualquer dúvida é só falar!

Aprendizado para a vida: Sempre que for postar um código aqui no fórum, utilize o botão "inserir código" e cole o código no lugar indicado para que o código fique com a formatação adequada!

Grande abraço e bons estudos!