4
respostas

Dúvida sobre o parâmetro If

Segundo a tabela atualizada da OMS que consultei segue os seguintes dados.

Baixo peso < 18,5

Peso adequado ≥ 18,5 e < 25

Sobrepeso ≥ 25 e < 30

Obesidade ≥ 30

Fiz meu código da seguinte forma

<meta charset="UTF-8">

<script>
    function pulaLinha() {

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

    function mostra(texto) {

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

    function calculaImc(altura, peso) {

        return peso / (altura * altura);    
    }

    var nome = prompt("Qual o seu nome?");
    var altura = prompt(nome + ", Informe sua altura");
    var peso = prompt(nome + ", Informe seu peso");

    var imc = calculaImc(altura, peso);

    mostra(nome + ", Seu IMC é " + imc);

    if(imc < 18.5) {

        mostra("Você está abaixo do peso recomendado pela OMS");
    }

    if(imc >= 18.5 && imc <= 25) {

        mostra("Você está com o peso adequado segundo a OMS");
    }

    if(imc >= 25 && imc <= 30) {

        mostra("Você está com sobrepeso segundo a OMS");
    }

    if(imc > 30) {

        mostra("Você está com obesidade segundo a OMS");
    }

</script>

De primeira meu código não funcionava pois ao invés de colocar (>= 25 && <= 30) eu coloquei (>=25 && <30) sendo assim não aceitando (=30). Minha dúvida é, o comando If não aceita >= && <? somente >= && <=? Existe alguma forma de colocar um código dessa maneira?

Obrigado pela atenção

4 respostas

Opa Chuck, tudo bem?

Bom, testando o seu código não consegui encontrar nenhum erro com (>=25 && <30), o que era esperado. O if aceita ambas as formatações, ou seja, está correto escrever dessa forma. Aqui ocorreu tudo bem.... pode me enviar o seu erro?

Olá, Chuck.

O Javascript aceita qualquer tipo de operação saída lógica (que envolve operadores lógicos e/ou relacionais) em blocos de seleção ou de repetição.

Copiei seu código e realizei as mudanças que falou e rodou direitinho aqui

<meta charset="UTF-8">

<script>
    function pulaLinha() {

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

    function mostra(texto) {

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

    function calculaImc(altura, peso) {

        return peso / (altura * altura);    
    }

    var nome = prompt("Qual o seu nome?");
    var altura = prompt(nome + ", Informe sua altura");
    var peso = prompt(nome + ", Informe seu peso");

    var imc = calculaImc(altura, peso);

    mostra(nome + ", Seu IMC é " + imc);

    if(imc < 18.5) {

        mostra("Você está abaixo do peso recomendado pela OMS");
    }

    if(imc >= 18.5 && imc < 25) {

        mostra("Você está com o peso adequado segundo a OMS");
    }

    if(imc >= 25 && imc < 30) {

        mostra("Você está com sobrepeso segundo a OMS");
    }

    if(imc >= 30) {

        mostra("Você está com obesidade segundo a OMS");
    }

</script>

talvez tenha sido um erro de digitação.

espero ter ajudado.

Opa, Chuck! Tudo bem, amigão?

Nossos amigos acima foram certeiros!

O if aceita qualquer comparação contanto que não haja conflito entre essas comparações.

Erros no seu código não vão gerar, porém vai haver conflito no momento em que seu imc for 25 ou 30. Mas conforme as alterações do Madson, seu código fica perfeito!

Um abraço e bons estudos, Chuck!

Devo ter digitado algo errado, funcionou perfeitamente, obrigado.