5
respostas

Logica de programação, contador 30 ao 40

tentando achar uma forma ainda mais reduzir de escrever esse código eu pensei em usar o operador OU || para pode em 1 comando só eliminar a contagem dos números 33 e 37, porém não funcionou, alguém pode dizer onde está o erro?

na minha cabeça isso parecia fazer sentido hahaha

5 respostas

Olá, amigo, desse jeito que eu consegui resolver o problema

<meta charset="UTF-8">

<script>

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

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

var contador=30

mostra ("Contagem de 30 a 40, exceto 33 e 37");

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

    }
    contador = contador+1
}

</script>

Oi, boa noite! fiz o meu semelhante ao seu, no entanto não funcionou por um pequeno detalhe. Ainda não conseguir entender o motivo. Você poderia me ajudar?

(Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Quando coloco o numero = numero + 1; , em cima, ele começa a contar do 31 e vai até o 41.

Tamires,

não testei aqui para te dizer com certeza, mas acredito que é porque os scripts são lidos linha por linha em sequência. No caso do seu código, o while está verificando se a variável numero é menor ou igual a 40. Em seguida, está incrementando a variável número em +1, e só depois verificando o if, e executando o document.write(numero).

Ou seja, quando o document.write é executado, ele já somou +1 à variável número, por isso começa do 31.

Para resolver o problema, tente escrever numero = numero + 1; após o document.write (numero). Assim, só após já ter escrito na tela o número atual que será acrescentado +1 à variável número.

Se ficar alguma dúvida não hesite em perguntar que te ajudaremos esclarecer. Bons estudos.

João Ricardo.

O operador OU nesse caso não funciona pelo seguinte. O if está verificando se o contador é diferente de 33 e diferente de 37, e se atender essas duas condições, o contador é mostrado. Ou seja, se o número for 31, por ser diferente de 33 e diferente de 37, ele é mostrado. Já se o número for 33, não será mostrado porque 33 é igual a 33 e diferente de 37, ou seja, não atendeu às duas condições.

Se você colocar o operador OU, ele mostrará o contador se qualquer uma das condições for atendida. Ou seja, se o número for 33, ele irá verificar que é igual a 33 e diferente de 37. Ou seja, o contador será mostrado porque a segunda condição (33 diferente de 37) foi atendida.

O operador && diz que as duas condições tem que ser obrigatoriamente atendidas, mas o operador || diz que se apenas uma das duas condições forem atendidas, ele executa o código.

Espero ter ajudado. Bons estudos.

Muito obrigada, Willian!