1
resposta

duvida se desta forma também esta correto e o motivo de mudar o resultado apenas mudando a sequencia

eu coloquei meu código assim

<meta charset="utf-8">

<script>

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

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

    function excluiNumero() {
        if( numeroInicial == 33 ) 
            numeroInicial = numeroInicial + 1;
        if( numeroInicial == 37)
            numeroInicial = numeroInicial + 1;
    }

    var numeroInicial = 30;

    var numeroFinal = 40;


    while(numeroInicial <= numeroFinal) {
        mostra(numeroInicial + " texte");
        pulaLinha();
        numeroInicial = numeroInicial + 1;
        excluiNumero();

}

</script>

o resultado e este ![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

mas se eu troco a função "excluirNumero" de lugar fica assim EX

while(numeroInicial <= numeroFinal) {
        mostra(numeroInicial + " texte");
        pulaLinha();
        excluiNumero();
        numeroInicial = numeroInicial + 1;

![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade ) gostaria de saber o motivo do resultado ficar diferente apenas trocando de lugar a linha "excluiNumero" pela "numeroInicial = numeroInicial + 1"

1 resposta

Oi, Bruno, tudo bem?

Peço desculpas pela demora no retorno, estou aqui agora para te ajudar.

Analisando a lógica do seu algoritmo, podemos observar que os passos são: mostrar o número, pular uma linha, ir para o próximo número, excluir esse número caso ele seja igual a 33 ou 37. Logo, se mudarmos essa ordem lógica, também vamos mudar o nosso resultado. Vamos analisar como vai ser o fluxo do algoritmo quando ele chegar no valor 32, usando a alteração que você fez:

  1. Vai exibir o valor 32;
  2. Vai pular uma linha;
  3. Então ele irá verificar se o valor é 33 ou 37 e, como não é, não vai fazer nada;
  4. Por fim, ele vai somar +1, logo será 33.

Agora, como o laço while irá se repetir, na próxima iteração o valor será 33 e ele não será excluído pois não passará pela função excluiNumero, então o algoritmo irá se repetir novamente:

  1. Vai exibir o valor 33;
  2. Vai pular uma linha;
  3. Então vai verificar se o valor é 33 ou 37, e como é `33, ele vai somar +1 e vai virar 34;
  4. Depois ele vai somar novamente +1, e vai virar 35.

Dessa maneira, alterando a ordem, você vai perceber que os valores “pulados” serão 34 e 38, e não 33 e 37.

Espero que isso tenha te ajudado. Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado. ✓