首页 > 解决方案 > 如何在方法之间传递参数并使用Java正确调用方法?

问题描述

该程序应执行以下操作:

编写一个名为 getheartRate 的方法,该方法不接受任何参数并返回一个 int (heartRate)。此方法提示用户输入患者的心率,从命令行读取他们的输入,并返回此值。

编写一个名为 checkHeartRate 的方法,该方法接受一个 int 参数(心率)并返回一个字符串(结果)。如果心率高于 100,则返回值“High”。如果心率低于 60,则返回值“Low”。否则返回“正常”。

编写一个名为 printHRResult 的方法,该方法接受一个 String 参数,该参数是方法 checkHeartRate 的结果。将此值打印到命令行。

使用适当的参数传递从主方法调用所有三个方法。

到目前为止,我有:

public class UnitSixInClassFall2018 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        UnitSixInClassFall2018 u = new UnitSixInClassFall2018();
        u.getHeartRate();
        System.out.println();
        Scanner scan = new Scanner(System.in);
        u.checkHeartRate(0);
        // END MAIN
    }

    public int getHeartRate(){
        System.out.print("Please enter your heart rate: ");
        Scanner scan = new Scanner(System.in);
        int heartRate = scan.nextInt();
        return 0;
    }

    public void checkHeartRate(int heartRate){
        if (heartRate > 100) {
           String result = "High";
        }
        else if (heartRate < 60) {
           String result = "Low";
        }
        else {
           String result = "Normal";
        }
    }

    public String printHRResults(String result) {  
       System.out.print("Your hear rate is " + result + ".");
       return result; 
    }

}

运行时,输出的只是“请输入您的心率:”。一旦我输入一个整数,程序就结束了。什么做错了?

标签: javamethodsparametersreturn

解决方案


您应该更改此方法以返回如下心率:

public int getHeartRate(){
    System.out.print("Please enter your heart rate: ");
    Scanner scan = new Scanner(System.in);
    int heartRate = scan.nextInt();
    // Also add this
    scan.close();
    return heartRate;
}

并更改此方法以返回结果:

public String checkHeartRate(int heartRate){
    if (heartRate > 100) {
       return "High";
    }
    else if (heartRate < 60) {
       return "Low";
    }
    else {
       return "Normal";
    }

}

然后在你的主要方法中:

// get the heart rate
int heartRate = u.getHeartRate();
// Call the checkHeartRate method
String result = checkHeartRate(heartRate);
// call the printHRResults 
printHRResults(result);

那应该可以解决您的问题。


推荐阅读