Register Login

BMI Calculator in Java

Updated Sep 20, 2019

What is BMI?

BMI or Body Mass Index is body mass measurement of an individual based on their height and weight. Using BMI a person can be classified into underweight, normal, overweight or obese etc according to the table below. 

Formula of BMI

BMI = kg/m2 

where kg is the weight of individual and m2 is the squared height of individual

Formula of BMI in Lbs

BMI = lbs/in2 

where lbs is the weight of individual and in2 is the squared height of individual

Here in this tutorial, you will learn how to write:

1) Simple Java Program to Calculate BMI of an Individual

2) Advance Java Program to Calculate BMI of an Individual and print if the individual is underweight, normal,  overweight or obese according to following BMI categories

  • Less than 15 = Very severely underweight 
  • bmi >= 15 but bmi < 16 = Severely underweight
  • bmi >= 16 but bmi < 18.5 =  Underweight
  • bmi >= 18.5 but bmi < 25 = Normal (healthy weight)
  • bmi >= 25 but bmi < 30 = Overweight
  • bmi >= 30 but bmi < 35 = Moderately obese
  • bmi >= 35 but bmi < 40 = Severely obese
  • bmi > 40 = Very severely obese

1) Java Program to Calculate BMI

//Java program to calculate the BMI

//Importing the Scanner package
import java.util.Scanner;

//Main / Drived Class
public class Main
{
    //Main Function
    public static void main(String[] args) {
        //Creating the object of Scanner Class
        Scanner input = new Scanner(System.in);
        //Giving the hint to user what has to enter
        System.out.println("Enter your weight unit (kg or lbs): ");
        //Taking Weight Unit from user
        String unit = input.nextLine();
        //Giving the hint to user what has to enter
        System.out.println("Enter your Weight : ");
        //Taking weight from user
        double weight = input.nextDouble();

        double height = 0;
        //Checking which weight unit has been selected by user
        if(unit.equals("kg")){
            //If unit is kg
            //Giving the hint to user what has to enter
            System.out.println("Enter your Height(In Meters) : ");
            //Taking height(in Meters) from user
            height = input.nextDouble();
        }else if(unit.equals("lbs")){
            //Giving the hint to user what has to enter
            System.out.println("Enter your Height(In Inches) : ");
            //Taking height(in Inches) from user
            height = input.nextDouble();
        }
        //Declaring a double type parameter
        double bmi;
        /*Switch Cases on weight units because BMI Formula changes according to
        /* the Weight Units
        */
        switch (unit){
            //If unit is kg
            case "kg":
                //caluclate the bmi with formula and store it in variable
                bmi = weight / (height * height);
                //print the BMI
                System.out.println("YOUR BMI IS : "+ bmi +" kg/m2");
                break;
            //If unit is lbs
            case "lbs":
                //caluclate the bmi with formula and store it in variable
                bmi = 703 * (weight / (height * height));
                //print the BMI
                System.out.println("YOUR BMI IS : "+ bmi +" lbs/in2");
                break;
            default:
                System.out.println("Please choose correct weight unit");
        }
    }
} 

Output

Enter your weight unit (kg or lbs): 
lbs
Enter your Weight : 
170
Enter your Height(In Inches) : 
69
YOUR BMI IS : 25.101869355177485 lbs/in2

2) Java Program to Calculate BMI & Health Status

//Java program to calculate the BMI

//Importing the Scanner package
import java.util.Scanner;

//Main / Drived Class
public class Main
{
    //Main Function
    public static void main(String[] args) {
        //Creating the object of Scanner Class
        Scanner input = new Scanner(System.in);
        //Giving the hint to user what has to enter
        System.out.println("Enter your weight unit (kg or lbs): ");
        //Taking Weight Unit from user
        String unit = input.nextLine();

        //Giving the hint to user what has to enter
        System.out.println("Enter your Weight : ");
        //Taking weight from user
        double weight = input.nextDouble();

        double height = 0;
        //Checking which weight unit has been selected by user
        if(unit.equals("kg")){
            //If unit is kg
            //Giving the hint to user what has to enter
            System.out.println("Enter your Height(In Meters) : ");
            //Taking height(in Meters) from user
            height = input.nextDouble();

        }else if(unit.equals("lbs")){
            //Giving the hint to user what has to enter
            System.out.println("Enter your Height(In Inches) : ");
            //Taking height(in Inches) from user
            height = input.nextDouble();
        }
        //Declaring a double type parameter
        double bmi = 0;
        /*Switch Cases on weight units because BMI Formula changes according to
        /* the Weight Units
        */
        switch (unit){
            //If unit is kg
            case "kg":
                //caluclate the bmi with formula and store it in variable
                bmi = weight / (height * height);
                //print the BMI
                System.out.println("YOUR BMI IS : "+ bmi +" kg/m2");
                break;
            case "lbs":
                //caluclate the bmi with formula and store it in variable
                bmi = 703 * (weight / (height * height));
                //print the BMI
                System.out.println("YOUR BMI IS : "+ bmi +" lbs/in2");
                break;
            default:
                System.out.println("Please choose correct weight unit");
        }

        //Cheking bmi with BMI CATEGORIES
        if(bmi < 15){
            System.out.println("You are in 'Very severely underweight' Category");

        }else if(bmi >= 15 && bmi < 16){
            System.out.println("You are in 'Severely underweight' Category");

        }else if(bmi >= 16 && bmi < 18.5){
            System.out.println("You are in 'Underweight' Category");

        }else if(bmi >= 18.5 && bmi < 25){
            System.out.println("You are in 'Normal (healthy weight)' Category");

        }else if(bmi >= 25 && bmi < 30){
            System.out.println("You are in 'Overweight' Category");

        }else if(bmi >= 30 && bmi < 35){
            System.out.println("You are in 'Moderately obese' Category");

        }else if(bmi >= 35 && bmi < 40){
            System.out.println("You are in 'Severely obese' Category");

        }else if(bmi > 40){
            System.out.println("You are in 'Very severely obese' Category");

        }

    }
} 

Output

Enter your weight unit (kg or lbs): 
kg
Enter your Weight : 
123
Enter your Height(In Meters) : 
1.98
YOUR BMI IS : 31.37434955616774 kg/m2
You are in 'Moderately obese' Category

 


×