【问题标题】:How does one pass parameters between methods and correctly call the method using Java?如何在方法之间传递参数并使用Java正确调用方法?
【发布时间】:2019-04-05 22:46:05
【问题描述】:

程序应该执行以下操作:

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

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

编写一个名为 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; 
    }

}

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

【问题讨论】:

  • 在 checkHeartRate 中不要忘记调用 printHRResults
  • getHeartRate 不应返回 0,而应返回 heartRatecheckHeartRate 不应声明返回 void(无),而是返回 String,然后是 return result;。而且这个级别的题恐怕还是太初学者了。

标签: java methods parameters return


【解决方案1】:

你应该改变这个方法来返回这样的心率:

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";
    }

}

然后在你的 main 方法中:

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

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

【讨论】:

    【解决方案2】:

    首先,您要创建两个具有相同输入类型 (System.in) 的 Scanner 对象,不建议这样做。相反,只需创建一个 Scanner 对象并在程序中的任何地方使用它。 This post 有一些很好的信息。

    改进了Scanner 对象使用的代码的改进版本如下:

    public UnitSixInClassFall2018 {
        private static final Scanner scan = new Scanner(System.in);
    
        public static void main(String[] args) {
            NewMain u = new NewMain();
            int heartRate = u.getHeartRate();
            System.out.println();
            String result = u.checkHeartRate(heartRate);
            u.printHRResults(result);
            scan.close(); // Close the scanner once you are completely done using it
        }
    
        public int getHeartRate() {
            System.out.print("Please enter your heart rate: ");
            return scan.nextInt(); // Return the input of the user
        }
    
        public String checkHeartRate(int heartRate) {
            String result = ""; // Initialize some default value
            if (heartRate > 100) {
               result = "High";
            }
            else if (heartRate < 60) {
               result = "Low";
            }
            else {
               result = "Normal";
            }
            return result; // Return the result calculated from the if-statements
        }
    
        public void printHRResults(String result) {
           System.out.print("Your heart rate is " + result + ".");
           // Originally this method returned a string but that seems unnecessary
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多