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

Condição IF

Olá pessoal tudo bem com vocês ? Eu espero que sim . Bom estou escrevendo aqui porque eu tentei fazer algo um pouco mais "personalizavel" pórem estou recebendo um erro . ( Está exibindo todas as mensagens , parece que o mesmo não está verificando as condições ou se está , como ele encontra + de 1 verdadeira exibindo assim mais de 1 frase ) Por favor me digam em qual parte errei e o que eu posso fazer para melhorar.

<meta charset ="utf-8">
<script>

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

function mostra(frase){
    document.write(frase);
    pulaLinha();
}

function calculoIMC(peso,altura){

    return peso / (altura * altura);
}

    var nome = prompt("Digite o seu nome: ");
    var altura = prompt(nome + " , informe sua altura");
    var peso = prompt(nome + " , informe o seu peso");

    var imc = calculoIMC(peso,altura);

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

    if (imc < 16){
        mostra(nome + ", sua classificação é : <b>Magreza grave</b>");
    }
    if(imc < 17){
        mostra(nome + ", sua classificação é :<b>Magreza moderada</b>");
    }
    if(imc >= 17 <= 18.5){
        mostra(nome + ", sua classificação é : <b>Magreza Leve</b>");
    }
    if(imc > 18.5 <= 25){
        mostra(nome + ", sua classificação é : <b>Saudável</b>");
    }
    if(imc  > 25 <= 30){
        mostra(nome + ", sua classificação é : <b>Sobrepeso</b>");
    }
    if(imc > 30 < 35){
        mostra(nome + " , sua classificação é : <b>Obesidade Grau I</b>");
    }
    if(imc  > 35 < 40){
        mostra(nome + ", sua classificação é : <b>Obesidade Grau II (severa)</b>");
    }
    if(imc  > 40){
        mostra(nome + ", sua classificação é : <b>Obesidade Grau III (mórbida)")
    }


</script>
2 respostas
solução!

Ola Renato, tudo bom?

Tente da seguinte maneira

        if (imc < 16){
        mostra(nome + ", sua classificação é : <b>Magreza grave</b>");
    }else if(imc < 17){
        mostra(nome + ", sua classificação é :<b>Magreza moderada</b>");
    }else if(imc >= 17 <= 18.5){
        mostra(nome + ", sua classificação é : <b>Magreza Leve</b>");
    }else if(imc > 18.5 <= 25){
        mostra(nome + ", sua classificação é : <b>Saudável</b>");
    }else if(imc  > 25 <= 30){
        mostra(nome + ", sua classificação é : <b>Sobrepeso</b>");
    }else if(imc > 30 < 35){
        mostra(nome + " , sua classificação é : <b>Obesidade Grau I</b>");
    }else if(imc  > 35 < 40){
        mostra(nome + ", sua classificação é : <b>Obesidade Grau II (severa)</b>");
    }else if(imc  > 40){
        mostra(nome + ", sua classificação é : <b>Obesidade Grau III (mórbida)")
    }

Funcionou?

Abraços!

Oi Renato, boa tentativa! Mas veja que no seu código original se o usuário digitar 15, por exemplo, ele cairá nas condições que testa se ele é menor do que 16 e também aquela que esta se é menor do que 17.