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

Outra solução

Também faz sentido se for feito assim ? Eu sei que funciona mas de maneira lógica, é plausível ?

<meta charset="utf-8">

<script>

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

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

    var contador = 30;


    while(contador <= 40) {

        mostra(contador);

        contador = contador +1;

        if(contador == 33){
            contador = contador +1;
        }
        if(contador == 37){
            contador = contador +1;
        }


    }

    mostra("FIM");

</script>

E por que dessa forma não funciona ?

<script>

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

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

    var contador = 30;


    while(contador <= 40) {

        mostra(contador);

        contador = contador +1;

        if(contador == 33  &&  contador == 37) {
            contador = contador +1;
        }

    }

    mostra("FIM");

</script>
2 respostas
solução!

Olá, é plausível sim. Mas cabe a você definir como fica mais objetivo e claro de perceber o que o código faz.

No seu segundo código na parte do if, você está dizendo que se o contador for 33, E ao mesmo tempo for 37, o contador deve ser incrementado. Na verdade o que você quer dizer é que se o contador for 33 OU 37, ele deve ser incrementado.

Para trocar a condição para OU, utilize dois pipes (||):

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

Em relação à lógica do seu código eu leio da seguinte maneira:

  1. Contador vai de 30 a 40 inclusive
  2. Mostra contador atual
  3. Se o contador for 33 ou 37 incrementa 1

Já em relação ao código da resposta:

...
var contador = 30;
while(contador <= 40) {

    if( contador != 33 && contador != 37) {
            mostra(contador);
    }
    contador = contador + 1; 
}
...
  1. Contador vai de 30 a 40 inclusive
  2. Só mostre o contador se for diferente de 33 e diferente de 37
  3. Incrementa o contador

Na minha opinião a lógica deste último fica mais clara, objetiva, e simples de entender.

Novamente, a escolha é sua, você define o que acha mais compreensível, claro e objetivo.

Obrigado pela ajuda !