user3538183
user3538183

Reputation: 1

BMI calculator errors

While doing an assignment for a BMI calculator I keep running into problems with the compiler and the method being used.

The assignment requires me to call a function double bmi to calculate the bmi. I am having problems getting the calling of the function correct. Any help would be great.

One of the errors:

Prog5.java:44: error: illegal start of expression
       public static double calculateBmi(double height, double total) {
       ^

Code:

import java.util.Scanner;   
public class Prog5 {   
    public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    double avgweight,bmi,total,wReading;
    int heightft,heightin,height,k;
    String category,weightreading;

    System.out.print("Enter the height(in feet and inches separated by spaces): ");
    heightft = sc.nextInt();
    heightin = sc.nextInt();
    height = ((heightft*12)+heightin);
    System.out.print("Enter the weight values separated by spaces followed by a        negative number: ");
    wReading = sc.nextDouble();

    While (wReading >=0);
    {
        total = wReading+total;
        Count++;
        wReading = sc.nextDouble();
    }

    avgweight = 0;
    total = 0;
    weightreading = "Weight readings: " + wReading;
    avgweight = total/Count;

    public static double calculateBmi(double height, double total) {
        {
            double bmi = 0;
            double total = 0;
            double height = 0;
            bmi = (height*703) / (total*total);
        }
        return bmi;
    }

    if ( bmi > 30)
        category=("Obese");
    else if (bmi >= 25)
        category=("Overweight");
    else if (bmi >= 18.5)
        category=("Normal");
    else {
        category=("Underweight");   
    }

    System.out.println("");
    System.out.println("Height: "+ heightft + " feet " + heightin + " inches" );
    System.out.println("Weight readings: "+ count);
    System.out.println("Average weight: " + avgweight + "lbs");
    System.out.println("");
    System.out.printf("BMI:  " + "%.2f", bmi);
    System.out.println("");
    System.out.println("Category: " + category);
    System.out.println("");
}

private static void ElseIf(boolean b) { }
private static void If(boolean b) { }

}

Upvotes: 0

Views: 796

Answers (2)

ballesta25
ballesta25

Reputation: 93

The problem you mention is due to you beginning another method inside main. You instead want a structure something like:

public class Prog5
{
    public static void main(String[] args)
    {
        // code here
    }

    public static double calculateBMI(double height, double total)
    {
        //other code
    }
}

Upvotes: 1

Miguel Dickson
Miguel Dickson

Reputation: 208

Your problem is that you are attempting to define a method (namely, public static double calculateBMi) inside a method (public static void main), and Java does not let you do that. (Basically, methods that aren't main need to be attached to a class.)

In the future, you may want to look around before asking this kind of question, since duplicate versions of this have been asked. Your question is basically: Function within a function in Java

Upvotes: 0

Related Questions