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

Todos os números entre 30 a 40, exceto 33 e 37!

Tentei simplificar esse código , contudo oque foi apresentado até aqui, porém o meu navegador não sai do loop. Gostaria de saber , oque está errado ?

<meta charset="UTF-8">
<script>

    function pulaLinha() {

        document.write("<br><br>");
    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }


    var numeros = parseInt(prompt("Insira um numero"));
    var numero = 30 ;

    while(numero <= numeros) {

        if(numero != 33 && numero != 37) {
        numero = numero + 1;
            mostra("Os numeros entre 30 e 40 são = " + numero);
        }
    }



mostra("FIM");


</script>
2 respostas

Oi Rafael, tudo bem?

Isso acontece porque você escreveu numero = numero + 1 dentro da condição do if. Ou seja, se não entrar nesse if, o número nunca vai mudar e o loop será infinito, como é o caso! Precisamos tirar essa linha da verificação, colocar fora desse if, da seguinte maneira:

while(numero <= numeros) {
     if(numero != 33 && numero != 37) {
         mostra("Os numeros entre 30 e 40 são = " + numero);
     }
     numero = numero + 1;
}

Agora o número vai sempre acrescentar em 1, resultando em um loop finito.

Uma dica que eu dou pra você é que podemos escrever numero = numero + 1; como numero += 1, resultando em um mesmo resultado! Ou até mesmo, usar numero++, que também acrescenta 1 unidade, assim fica menos verboso =)

Espero ter ajudado! Qualquer outra dúvida estou à disposição, bons estudos!

solução!

Olá Giovanna, como vai?

Eu não havia prestado atenção nesse detalhe, realmente eu poderia ter deixado dentro do bloco While, mas sem necessidade de inseri-lo no bloco if. Agradeço muito pela tua ajuda, esse detalhe que você notou, faz toda a diferença .

Atenciosamente: Rafael Caldeira