Возвращаемое значение из метода в главное не отображалось правильно - PullRequest
0 голосов
/ 02 марта 2020

Я строю программу, используя JAVA, чтобы получать входные данные от пользователя для вычисления их ИМТ и передавать эти значения другому имени метода Calculate BMI (). В настоящее время проблема заключается в том, что когда я хочу вернуть ИМТ в метод main, он будет отображать выходные данные как 0.0. Вот код:

import java.util.Scanner;

public class StudentBMI{


//METHOD
      static float calculateBMI(float weight, float height){

        float bmi;

        System.out.println("Your weight in KG is: " + weight);
        System.out.println("Your height in M² is: " + (height/100));
        return bmi = weight / (height/100)*(height/100);


        }

//MAIN
  public static void main(String[] args) {

        float bmi=0;
        Scanner input = new Scanner(System.in);

        System.out.println("Please insert your weight in KG: ");
        float weight = input.nextFloat();
        System.out.println("Please insert your height in CM: ");
        float height = input.nextFloat();

        calculateBMI(weight, height);

        System.out.println("Your BMI is: " + bmi);

      }
}

Причина, по которой я объявил и инициализировал значение BMI как 0 в основном методе, потому что, когда я объявлял без инициализации, консоль возвращает ошибку инициализированной этой переменной, но, честно говоря, я ' Я не очень уверен в этом. Может кто-нибудь помочь мне разобраться с этой проблемой?

Ответы [ 3 ]

0 голосов
/ 02 марта 2020

Пожалуйста, удалите BMI в вашем методе. Присвоение в методе не отразится на вашем основном методе, так как это не переменная класса или переменная stati c.

Переменная bmi основного метода должна получить присвоение результата метода.

import java.util.Scanner;

public class StudentBMI{

//METHOD
      static float calculateBMI(float weight, float height){

          System.out.println("Your weight in KG is: " + weight);
          System.out.println("Your height in M² is: " + (height/100));
          return weight / (height/100)*(height/100);

        }

//MAIN
  public static void main(String[] args) {

        float bmi=0;
        Scanner input = new Scanner(System.in);

        System.out.println("Please insert your weight in KG: ");
        float weight = input.nextFloat();
        System.out.println("Please insert your height in CM: ");
        float height = input.nextFloat();

        bmi = calculateBMI(weight, height);

        System.out.println("Your BMI is: " + bmi);

      }
}
0 голосов
/ 02 марта 2020

// ваш код возвращает неправильное значение. Вы можете проверить мой и сравнить его с вашим кодом

import java .util.Scanner;

publi c class StudentBMI {

  static float calculateBMI(float weight, float height){

    float bmi;
    float calc;

    System.out.println("Your weight in KG is: " + weight);
    System.out.println("Your height in M² is: " + (height/100));
    calc=(height/100)*(height/100);
    bmi=weight/calc;
    return bmi;


    }

publi c stati c void main (String [] args) {

    float bmi=0;
    Scanner input = new Scanner(System.in);

    System.out.println("Please insert your weight in KG: ");
    float weight = input.nextFloat();
    System.out.println("Please insert your height in CM: ");
    float height = input.nextFloat();

    System.out.println("Your BMI is: " + calculateBMI(weight, height));

  }

}

0 голосов
/ 02 марта 2020

Сначала верните значение bmi в вашем методе без присваивания.

Назначьте возвращаемое значение переменной bmi в основном методе:

  //METHOD
  static float calculateBMI(float weight, float height){



    System.out.println("Your weight in KG is: " + weight);
    System.out.println("Your height in M² is: " + (height/100));
    return  weight / (height/100)*(height/100);


    }

//MAIN

 public static void main(String[] args) {

    float bmi=0;
    Scanner input = new Scanner(System.in);

    System.out.println("Please insert your weight in KG: ");
    float weight = input.nextFloat();
    System.out.println("Please insert your height in CM: ");
    float height = input.nextFloat();

    bmi = calculateBMI(weight, height);

    System.out.println("Your BMI is: " + bmi);

  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...