1
resposta

Tentei fazer desse jeito mas não deu certo!

Efetuei dessa forma, mas não entendi o pq não funcionou. Alguem consegue me dar uma luz.


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

    function pulaLinha() {

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

    function mostra(frase) {

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

var numeroInicial = 30;
var numeroFinal = 40

if (numeroInicial != 33,37) {
    while(numeroInicial <= numeroFinal) {
        mostra("O numero é " + numeroInicial);
        numeroInicial = numeroInicial + 1
}
}
mostra("FIM");

</script>
1 resposta

Tem 2 erros com seu código:

  1. Você precisa primeiro contar e só depois verificar se o número da contagem deve ou não ser exibido.

Ao invés disso:

if (numeroInicial != 33,37) {
    while(numeroInicial <= numeroFinal) {
        mostra("O numero é " + numeroInicial);
        numeroInicial = numeroInicial + 1

O correto seria isso:

while(numeroInicial <= numeroFinal) {
        if (numeroInicial != 33,37) {
            mostra("O numero é " + numeroInicial);
        }
        numeroInicial = numeroInicial + 1

OBS: É importante notar que apesar do valor ser ou não exibido, o valor ainda deve ser incrementado para evitar cair em loop infinito!

  1. Sua condição dentro do if está errada.
if (numeroInicial != 33,37)

A vírgula serve para separar condições, se separarmos suas condições à partir da vírgulas vamos ter a condição "numeroInicial != 33" e a outra condição seria "37". O que não é uma condição válida

Para corrigir esse problema você pode alterar para isso:

if (numeroInicial != 33 && numeroInicial != 37)

O símbolo "&&" significa "E", lendo sua condição, ficaria: "Se numeroInicial for diferente de 33 E se numeroInicial for diferente de 37".

Ou seja, se o valor não for nem 33 e nem 37, mostre o valor.