Estou fazendo o projeto da nutricionista da Alura e quis implementar um pouco mais dando a situação do usuário, como obeso ou peso abaixo do que deveria.
Quando o programa identifica a altura acima de 3 metros ou o peso acima de 1000kg ele apresenta uma mensagem de erro, mas mesmo assim o IMC é calculado e mostrado na tela.
Ou seja, pra altura acima de 3 metros ou peso acima de 1000 a situação deveria ser Zero
var pacientes = document.querySelectorAll(".paciente");
for(var i = 0; i < pacientes.length ; i++){
    var paciente = pacientes[i];
    var tdPeso = paciente.querySelector(".info-peso");
    var tdAltura = paciente.querySelector(".info-altura");
    var tdImc = paciente.querySelector(".info-imc");
    var tdSitu = paciente.querySelector(".info-situ");
    var peso = tdPeso.textContent;
    var altura = tdAltura.textContent;
    var situ = tdSitu.textContent;
    var alturaEhValida = true;
    var pesoEhValido = true;
    if(peso <= 0 || peso >= 1000){
        tdSitu.textContent = "0";
        console.log("Peso inválido");
        tdImc.textContent = "Peso inválido!";
        pesoEhValido = false;
        paciente.classList.add("paciente-invalido");
        tdSitu.textContent = "0";
    }
    if(altura <= 0 || altura >= 3.0){
        console.log("Altura inválida");
        tdImc.textContent = "Altura inválida!";
        tdSitu.textContent = "0";
        alturaEhValida = false;
        paciente.classList.add("paciente-invalido");
        tdSitu.textContent = "0";
    }
    if(pesoEhValido && alturaEhValida){
        var imc = peso / ( altura * altura);    
                tdImc.textContent = imc.toFixed(2);
    }    
    if(imc < 18.5){
       tdSitu.textContent = "Você está abaixo do peso"; 
    }
    if(imc >= 18.5 && imc <= 29.9){
       tdSitu.textContent = "Peso normal"; 
    }
    if(imc >= 30){
      tdSitu.textContent = "Obesidade";
 }
}