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

No programa de IMC, todas as opções são retornadas! Não estou achando o erro ;-;

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

    function mostra(frase) {

        document.write(frase);
        pulaLinha();

    }

    function calculaImc(altura, peso) {

        return peso / (altura * altura);

    }

    var nome = prompt("Informe seu nome:");
    var alturaInformada = prompt("Informe sua altura:");
    var pesoInformado = prompt("Informe seu peso:");

    var imc = calculaImc(alturaInformada, pesoInformado);

    mostra(nome + ", o seu IMC é " + Math.round (imc));

    if(imc > 18.5) {

        mostra("Você está abaixo do recomendado.");

    }

    if(imc < 35) {

        mostra("Você está acima do recomendado.");
    }

    if(imc >= 18.5) {

        if(imc <= 35) {

            mostra("Seu IMC está excelente!");
        }
    }

    </script>
6 respostas

Oi Rayane tudo bem?

Testei seu programa nesse site https://codepen.io/anon/pen/xQaazQ e funcionou certinho.

Considerações, a altura tem que estar em metros e ao invés de vírgula usar ponto.

Por exemplo eu tenho 1,73 metros. Então quando perguntar a minha altura eu respondo 1.73

Se mesmo assim der erro me avisa quais respostas está dando para os inputs de pergunta para eu fazer uma prova de conceito.

André, boa noite!

Obrigada pela atenção!

Ele retorna o cálculo do IMC, mas traz todas as informações como abaixo:

"Rayane, o seu IMC é 31

Você está abaixo do recomendado.

Você está acima do recomendado.

Seu IMC está excelente!"

Quais são os valores de peso e altura que está inserindo no programa?

Altura: 1.70 Peso: 90

solução!

Imagine o seguinte supomos que o IMC tenha dado 20

 if(20 > 18.5) {
    // entra aqui porque 20 é maior que 18.5
        mostra("Você está abaixo do recomendado.");

    }

    if(20 < 35) {
    // entra aqui porque 20 é menor que 35
        mostra("Você está acima do recomendado.");
    }

    if(20 >= 18.5) {
    // entra aqui porque 20 é maior ou igual a 18.5
        if(20 <= 35) {
        // entra aqui porque 20 é menor ou igual a 35
            mostra("Seu IMC está excelente!");
        }
   }

Eu vi agora, na verdade você inverteu os sinais de maior e menor dos dois primeiros bloco IF. Coloca assim agora

 if(imc < 18.5) {

        mostra("Você está abaixo do recomendado.");

    }

    if(imc > 35) {

        mostra("Você está acima do recomendado.");
    }

    if(imc >= 18.5) {

        if(imc <= 35) {

            mostra("Seu IMC está excelente!");
        }
    }

Consegui! Obrigada! ♡