4
respostas

por que nao esta saindo o numero ?

insira seu código aqui

var numero = 30;

while(numero <= 40) {


if (numero >=33 || numero <=37) {
    numero = numero + 1;
    mostra("numero");
}

}
4 respostas

Oi Cleiton, tudo bem?

Acredito que seja porque você está passando uma string "numero" para a função mostra, ao invés de passar a variável número.

Tente trocar

mostra("numero");

por

mostra(numero);

e veja se funciona.

tem razão foi por isso que aparecia o nome numero na tela . mas tem um porem o numero 33 e 37 apareceu na tela .

Isso porque você colocou >= e <= . Ou seja, quando é 33 ou 37, o código de dentro do if ainda é mostrado na tela.

Se você mudar para maior e menor

if (numero >33 || numero <37) {
//...

Haverá o mesmo problema, pois quando o numero for 33, entrará dentro do if, pois 33 é menor que 37 (a segunda condição é satisfeita e como estamos usando o operador OU , apenas uma condição basta)

Então trocaríamos o OU (||) pelo E (&&) , onde as 2 condições precisam ser verdadeiras

if (numero > 33 && numero < 37) {
    numero = numero + 1;
    mostra("numero");
}

Mas note que haveremos ainda mais um problema, pois o primeiro numero é 30

O programa irá checar se 30 é maior que 33 (FALSE) E menor que 37 (TRUE)

TRUE E FALSE = FALSE

E é isso que queremos, só queremos mostrar quando as 2 condições forem verdadeiras.

Porém, da forma que está o programa, nunca sairá do numero 30, pois só é somado quando as duas condições forem verdadeiras.

Então fazemos o seguinte código:

while(numero <= 40) {

     // Mudamos  >= para >   e   <= para <
     if (numero > 33 && numero < 37) { 
         // movi o código dessa linha para fora do if
         mostra("numero");
     }
     numero = numero + 1; 

}

Dessa forma, o numero vai aumentando e só mostra quando for maior que 33e maior que 37.

Espero que tenha ajudado. :)

Olá Cleiton, tudo bem? Sua dúvida foi esclarecida?