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

Onde está o erro do código?

Gostaria de entender onde está o erro do meu código.

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

    function mostra(frase) {

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

    var contador = 30

    while(contador <= 40){

        if (contador == 33 && contador == 37){
        contador = contador + 1;
    }else{
       mostra(contador);
        contador = contador + 1;
    }
}
</script>
2 respostas
solução!

Olá Vitor,

O detalhe está no if (contador == 33 && contador == 37), mais exatamente no operador &&

Você testa se o contador é igual a 33 e igual a 37. Isso nunca vai acontecer, pois o contador nunca será 33 e 37 ao mesmo tempo.

Nesse caso você precisa testar se o contador é igual a 33 ou igual a 37.

Executa seu código novamente com essa alteração (utilizando o ||):

if (contador == 33 || contador == 37)

while(contador <= 40){ if (contador == 33 && contador == 37){ contador = contador + 1; }else{ mostra(contador); contador = contador + 1; } }

Nesta parte do código , alem da instrução "if (contador == 33 && contador == 37){" nunca ser acessada, pelo fato da variável contador nunca poder ser 33 e 37 ao mesmo tempo. Poderiamos melhorar o codigo da seguinte forma:

while(contador <= 40){ if (contador != 33 && contador != 37){ mostra(contador); } contador = contador + 1; }

Caso contador seja diferente de 33 e diferente de 37 execute o metodo mostra(.. e após isso adicione 1 em contador.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software