1
resposta

usando or para não exibir 33 e 37

<meta charset="UTF-8">

<script>

    function pula3x() {

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

    function mostra (frase) {

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

    var cont = 30;

    while (cont <= 40) {

        if (cont == 33 || cont == 37) {
            cont = cont + 1;
         }

          else {
            mostra (cont);
            cont = cont + 1;

          }



        }





 mostra ("FIM");

    </script>
1 resposta

Oi, Samantha! Tudo bem?

O código funciona muito bem. A utilização do operador OR (||) foi inserida nesse contexto de forma correta.

Algumas sugestões de melhoria podem ser aplicadas. Observe que dentro do laço while, tanto na condição de if quanto else nós temos a linha cont = cont + 1. Se essa linha ocorre independentemente da condição ser verdadeira ou falsa, nós podemos colocá-la fora do bloco de if-else. Então nós tinhamos esse código:

    while (cont <= 40) {

        if (cont == 33 || cont == 37) {
            cont = cont + 1;
         }

        else {
            mostra(cont);
            cont = cont + 1;
        }
    }

E podemos transformar nesse:

    while (cont <= 40) {

        if (cont == 33 || cont == 37) {
         }

        else {
            mostra(cont);
        }
        cont = cont + 1
    }

Mas podemos observar que o bloco de código dentro do if é vazio, e é somente é executada a ação para as condições dentro do bloco else. E não tem nenhum problema isso ocorrer, mas também pode ser feita a troca da condição para que só utilizemos apenas o if.

O cenário do código é descrito como: "Para todos os números diferente de 33 (E) diferente 37, printe-os", então podemos montar uma condição utilizando operador lógico and, tal que if(cont != 33 && cont != 37), e teremos:

    while (cont <= 40) {

        if (cont != 33 || cont != 37) {
            mostra(cont);
         }

        else {

        }
        cont = cont + 1
    }

E por fim, podemos remover o bloco de else{} vazio, já que ele não executa nenhuma ação.

    while (cont <= 40) {

        if (cont != 33 && cont != 37) {
            mostra(cont);
        }

        cont = cont + 1
    }

Se você tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

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