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

Não entendi a Lógica (Todos os números entre 30 a 40, exceto 33 e 37!)

Tive um pouco de dificuldade, mas achei o meu erro. estava colocando apenas um "=" no comando "if =33" e "if= 37"

<meta charset="UTF-8">

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

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

    var numeros = 30;

    while(numeros <= 40) {

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

    mostra("FIM");


</script>
2 respostas
solução!

Oi Fabrizio, tudo certo?

Queremos imprimir todos os números de 30 a 40 primeiramente, por isso nós iniciamos a variável numeros com 30, e no laço de repetição (while), nós colocamos a condição como menor ou igual a 40, pois queremos imprimir os números de 30 a 40.

Porém, não queremos imprimir o 33 e o 37, por isso nós criamos uma condicional que se o número for 33 ou o número for 37, ele não mostrará esses números! A sua condição está correta, porém você pode simplificar ainda mais utilizando o operador OR (que significa OU), dessa maneira:

if( numeros == 33 || numeros == 37) {
    numeros = numeros + 1;
}
else {
   mostra(numeros);
   numeros = numeros +1;
}

Dessa maneira, ele verificará se o numero é 33 OU 37. Caso for, apenas soma 1 a variável numeros, caso não for ele mostrará o número.

Além disso, podemos simplificar também:

numeros = numeros + 1;
// Pode ser escrito também como:
numeros += 1;

Esse é um operador de atribuição de adição, ou será, irá adicionar 1 à variável numeros, da mesma maneira que você estava fazendo anteriormente.

De qualquer maneira, fico feliz que tenha entendido o exercício =) Só quis explicar melhor pra sanar suas dúvidas!

Espero ter ajudado, bons estudos!

Entendi. Muito obrigado.