4
respostas

Gostaria de entender o porquê meu código deu errado... Continua sendo exibido o 33 e 37

Esse foi o meu código

 <meta charset="UTF-8">

<script>

    function pulaLinha() {

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

}


    function mostra(frase) {

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

var contador = 30;
if (contador != 33 && contador != 37) {
while (contador <= 40) {
 alert("Número: " + contador);
 contador = contador + 1;
}
}

</script> 
4 respostas

Olá!

Cole seu código entre os três acentos

```

```

para que vermos o que há de errado.

Olá!

Esse foi o meu código

 <meta charset="UTF-8">

<script>

    function pulaLinha() {

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

}


    function mostra(frase) {

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

var contador = 30;
if (contador != 33 && contador != 37) {
while (contador <= 40) {
 alert("Número: " + contador);
 contador = contador + 1;
}
}

</script> 

O correto é

var contador = 30;
while (contador <= 40) {
    if (contador != 33 && contador != 37) {
      alert("Número: " + contador);
    }
      contador = contador + 1;
}

Olha passo a passo:

  1. o contador é 30.
  2. até chegar em 40, ele faz o seguinte:
  3. testa se o contador não é 33 nem 37 (mostra na tela os que não são)

Olá!

o erro encontra-se na utilização de && como operador lógico dentro do if. O que seu código diz é "Se contador for diferente de 33 E for diferente de 37 faça o ciclo do while".

Ocorre que a variável contador sempre será diferente de 33 e 37 ao mesmo tempo, logo o ciclo irá sempre acontecer e por consequencia o 33 e o 37 irão aparecer. Deve-se trocar o && por || e utilizar o if dentro do while, o inverso da situação atual.

att,