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

Não exclusão da segunda condição.

<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 o seu nome");
    var alturaInformada = prompt(nome + ", informe sua altura");
    var pesoInformado = prompt(nome + ", informe seu peso");

    var imc = calculaImc(alturaInformada, pesoInformado);

    document.write(nome + ", o seu IMC é " + imc);

    if (imc < 18.5) {
        mostra(" Abaixo do peso");
    }

    if (imc > 35) {
        mostra(" Acima do peso");
    }

    if (18.5>=imc && imc<=35) {
        mostra(" Excelente");
    }

</script>

Quando entro com os dados sempre retorna o "excelente", vou dar um exemplo.

"Calopsita, o seu IMC é 13.850415512465375 Abaixo do peso

Excelente"

Sei que eu fiz um pouco diferente mas acho que a lógica ta certa. Como corrigir isto?

2 respostas
solução!

Olá, o erro está no último if, pois você inverteu o sinal. O correto seria:

if (18.5 <=imc && imc <=35) {
        mostra(" Excelente");
}

Oi Klerio! Tudo bem?

A resposta do Lucas está precisa, contudo recomendo que para facilitar a leitura, e acredito que esse seja o motivo da sua lógica não funcionar, é colocar sempre a variável que queremos comparar a esquerda do comparador.

        if (imc >=18.5 && imc <=35) {
                mostra(" Excelente");
        }

Espero ter ajudado,

Abraço e sucesso!

Rodrigo

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software