Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rafarocha/27fa02a8cbb26b811cfc2d1c9a52f4f6 to your computer and use it in GitHub Desktop.
Save rafarocha/27fa02a8cbb26b811cfc2d1c9a52f4f6 to your computer and use it in GitHub Desktop.
turma-1076-desafio03-feedback-clarice-copstein.java
import java.util.Scanner;
public class Main {
//Criar uma classe com método main
// Receber de entrada a altura e peso
// Utilizar a formula do IMC
// IMC é o peso dividido pela altura ao quadrado
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Resultado de Calculadora de Índice de Massa Corporal");
System.out.print("Informe seu peso em quilogramas (Exemplo: 61,7) ");
double peso = scanner.nextDouble();
System.out.print("Informe sua altura em metros (Exemplo: 1,74) ");
double altura = scanner.nextDouble();
double imc = calcularIMC(peso, altura);
System.out.println("Seu IMC é: " + imc);
System.out.println("Classificação: " + classificarIMC(imc));
calcularPesoIdeal( altura);
scanner.close();
}
public static double calcularIMC(double peso, double altura) {
return peso / (altura * altura);
}
public static String classificarIMC(double imc) {
if (imc < 18.5) {
return "Abaixo do peso";
} else if (imc >= 18.5 && imc < 24.9) {
return "Peso normal";
} else if (imc >= 25 && imc < 29.9) {
return "Sobrepeso";
} else if (imc >= 30 && imc < 34.9) {
return "Obesidade grau I";
} else if (imc >= 35 && imc < 39.9) {
return "Obesidade grau II";
} else {
return "Obesidade grau III (Obesidade mórbida)";
}
}
//Vamos utilizar para o IMC ideal o limite máximo 24,90 da tabela//Calcule o peso ideal utilizando a fórmula indicada abaixo
//Peso ideal é a altura ao quadrado multiplicado pelo IMC ideal // Método para calcular o peso ideal com base no IMC ideal
public static double calcularPesoIdeal(double altura) {
double imcIdeal = 24.90; // IMC ideal máximo;
double pesoIdeal = (altura * altura) * imcIdeal;
System.out.println("Seu peso ideal com base no IMC ideal é: " + pesoIdeal + " kg");
return pesoIdeal ;
}
}
@rafarocha
Copy link
Author

Revisão

  • Algoritmo funcional com todas as etapas em 58 linhas totais
  • Atendeu os principais cenários básicos de cálculos e tipos
  • Boa distribuição linear da lógica de negócio e comentários
  • Manteve a faixa das 80 colunas por linha de código, exceto pelos comentários
  • Mandou bem de tratar de obter valor e cálculos reusados por métodos
  • Fez uma boa apresentação do programa na inicialização

Melhorias

  • Poderia implementar constantes para faixa de valores de verificação
    • Poderia haver para textos fixos também
  • Faltou tratar valores quando inválidos, igual a zero ou negativos.
  • Não atendeu quando a entrada for zero pois retornou dados NaN e 0.0
  • Em próxima oportunidade tratar o close com try/catch conforme indicado link

Referências

@Clacops
Copy link

Clacops commented Nov 22, 2023

Ok, muito obrigada, observarer as orientações.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment