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";
}
}