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

Mensagem na tela

Olá galerinha tudo bem??

Escrevi o seguinte código:

function calculaImc(peso, altura){
       return peso/(altura*altura);
    }

    function mostra(mensagem){
        document.write(mensagem);
    }


    var peso = prompt("Informe seu peso");
    var altura = prompt("informe sua altura");

    var imc = calculaImc(peso, altura);

    mostra("O seu imc é " + Math.round(imc))


     if(imc <= 17){
         mostra("você precisa ganhar peso");
     } else if(imc >= 17.5 || imc <= 18.49) { 
         mostra("você ainda está abaixo do peso");
     } else if(imc >= 18.5 || imc <= 24.99){
         mostra("Parabêns você esta com o peso ideal, segundo a OMC")
     } else if(imc >= 25 || imc <= 29.99){
         mostra("Você está acima do peso");
     } else if(imc >= 30 || imc <= 34.99){
         mostra("você esta obeso nivel 1");
     } else if(imc <= 35 || imc <=  39.99 ){
         mostra("Você esta com obesidade severa");
     } else if(imc >= 40){
         mostra("Você vai morrer");
     }

Entretanto, o if e else não esta retornando a mensagem, alguém consegue ver aonde estou errando?

Desde já agradeço a ajuda!

3 respostas

Gente, abafa haahhaha o código funcionou hahahaha

solução!

Oi, Dante, tudo bem?

O problema está acontecendo porque você utilizou o operador lógico || ao invés do && nas condições dos else if. De acordo com a tabela do IMC, se tem intervalos dos pesos, onde cada intervalo corresponde a um nível. Como os pesos precisam estar dentre um intervalo, as condições dos else if precisariam ter a operador &&, para que a primeira condição e a segunda condição sejam atendidas, assim representando um intervalo de pesos.

Perceba que utilizando o operador ||, não foi possível criar um intervalo, já que para entrar dentro do else if apenas uma condição precisaria ser atendida.

Espero ter ajudado.

Qualquer dúvida pode contar com a gente aqui no fórum.

Abraços e bons estudos!

Olá Murilo, estou bem!

Espero que você também esteja!

Fiz as alterações e o código está funcionando, pensava que os dois || types iriam fazer ou um valor ou outro, por isso estava dando a mesma resposta.

Agradeço imensamente pela ajuda!

Excelente semana para você!