如何从一个静态方法中获取变量并在另一个方法中使用它们

时间:2015-09-27 22:48:18

标签: java variables

我正在尝试使用名为getBMI的静态方法中的变量:

public static double getBMI(int weightKG, int heightCM)
{
    Scanner input = new Scanner(System.in);
    // Input Weight
    System.out.print("Enter your weight in kilograms: ");
            weightKG = input.nextInt();
    System.out.println();
    // Input Height
    System.out.print("Enter your height in centimeters: ");
    heightCM = input.nextInt();
    System.out.println();
            return heightCM;
            return weightKG;
}

并在另一个名为calculateMetricBMI的静态方法中使用它:

public static void calculateMetricBMI()
{
    getBMI();
    System.out.println("A body mass index of 20-25 is considered \"normal\"");
    double bmiMetric = weightKG/Math.pow(heightCM/100.0, 2);
    System.out.print("Your BMI is " + bmiMetric);
} 

但是,我在尝试getBMI()时遇到错误;在calculateMetricBMI中。

编辑:

决定将参数添加到getBMI(); 现在它显示了getBMI(int weightKG,heightCM);

但是我收到了这个错误:

  

'的.class'预期

     

&#39 ;;'预期

     

&#39 ;;'预期

     

意外类型     要求:价值     发现:上课

3 个答案:

答案 0 :(得分:1)

您收到错误是因为您在参数中没有任何内容调用getBMI(),需要调用2个整数。

您也无法从1种方法中返回2个变量。

试试这个:

public static void calculateMetricBMI() {
    double weightKG = getWeight();
    double heightCM = getHeight();

    System.out.println("A body mass index of 20-25 is considered \"normal\"");
    double bmiMetric = weightKG/Math.pow(heightCM/100.0, 2);
    System.out.print("Your BMI is " + bmiMetric);
} 

public static double getWeight() {
    Scanner input = new Scanner(System.in);
    // Input Weight
    System.out.println("Enter your weight in kilograms: ");
    double weightKG = input.nextInt();

    return weightKG;
}

public static double getHeight() {
    Scanner input = new Scanner(System.in);
    // Input Height
    System.out.println("Enter your height in centimeters: ");
    double heightCM = input.nextInt();

    return heightCM;
}

在您的主要电话中

    calculateMetricBMI();

这是一个非常冗余的解决方案,你总是可以在calculateMetricBMI()中询问输入,而不必调用其他2个方法。

答案 1 :(得分:0)

  1. 您不能在方法中同时返回两个值。但是,我更改了您的代码以直接返回您的计算结果。

  2. 如果您要在其中初始化参数,则您的方法不需要参数。只需在方法中创建它们。

  3. 如果您愿意使用带参数的方法,当您调用该方法时,您当然应该使用参数

  4. getBMI()在这里不起作用,你应该以{{1​​}}为例,但这是一个不好的例子,因为它无论如何都不会起作用。

    请看下面的代码,它更清晰,会让你获得更好的结果。

    getBMI(50.0, 165.0)

答案 2 :(得分:0)

你需要用两个paremters来呼叫getBMI();

此外,您不能返回2个不同的变量,尽管这可能会导致语法错误。

另外需要注意的是,您需要保存getBMI();发送给您的内容。

例如:int weightKG = getBMI()getBMI()应该只返回一个值,而不是您在代码中描述的两个值。