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

O que estou errando?

Bem, o que estou errando no código para não mostrar nada?

<script>

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

    function mostra(frase) {

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


    var contador = 30;

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

            contador = contador + 1;
        }

</script>
9 respostas
solução!

Oi Bruno, o erro está nessa linha

if(contador != 33 && != 37)

Faltou você colocar a variável contador depois do &&

if(contador != 33 && contador != 37)

Pegou a diferença? Você tem que colocar a variável nos "dois lados" por assim dizer.

Opa cara, valeu!

E uma outra duvida, eu tinha mais ou menos uma noção de como era pra resolver, minha estrutura inicial estava ok. Queria saber o porque do uso do "!=" e do "&&" no caso do If.

Olá Bruno,

No trecho: if(contador != 33 && != 37){

Faltou a variável no segundo: if(contador != 33 && contador != 37){

Vou explicar Bruno, != quer dizer diferente então "traduzindo o if" é mais ou menos assim Se o contador for diferente que 33.. se fosse só essa verificação ele entrava no bloco, mas precisamos fazer mais uma Se o contador for diferente que 37.. Ai que entra o &&, esse && garante que as duas informações precisam ser verdadeiras, traduzindo seria Se o contador for diferente que 33 E contador for diferente que 37 ele entra no bloco, se uma delas forem falsas ele apenas ignora

Cara, me desculpe mas eu não entendi muito bem... essa parte de repetição/if ainda ta me confundindo bem, a sintaxe eu estou guardando bem, mas essa parte, me confundi e muito.

Vamos bem passo a passo então pra ver se eu consigo te explicar, também não sou muito bom com as palavras mas vou tentar. Você tem um laço de repetição (while) que ENQUANTO o contador for menor ou igual a 40 ele continua a executar aquele bloco e ao final dele ele acrescenta mais um ao contador, certo? A cada repetição ele chama esse IF, o if vai verificar se o contador é diferente (!=) que 33 e 37 se for diferente ele chama a função mostra.

Vamos simular a execução desse trecho, ok? Vamos imaginar que o contador invés de começar com 30 vai começar com 32 só para irmos mais rápidos.

contador = 32;

32 é menor ou igual a 40? É, então entra no laço de repetição. 32 é diferente que 33 e 37? É, então entra no if e chama a função mostra. Acrescenta mais um ao 32. 32 + 1 = 33.

contador = 33;

33 é menor ou igual a 40? É, então entra no laço de repetição. 33 é diferente que 33 e 37? Não, 33 é igual a 33 então aqui ele não entra no if. Acrescenta mais um ao 33. 33 + 1 = 34;

Cara, clareou bastante, muito obrigado!

De nada Bruno, qualquer dúvida não deixe de perguntar