程序应执行以下操作:
编写一个名为getheartRate的方法,该方法不带任何参数并返回一个int(heartRate)。 该方法提示用户输入患者的心律,读取 他们从命令行输入的内容,并返回该值。
编写一个名为checkHeartRate的方法,该方法接受一个int参数(心率)并返回 字符串(结果)。如果心率高于100,则返回值“高”。如果心率低于 60,返回值“低”。否则返回“正常”。
编写一个名为printHRResult的方法,该方法带有一个String参数,这是结果 从方法checkHeartRate。将此值打印到命令行。
使用适当的参数传递从main方法中调用所有三个方法。
到目前为止,我有:
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;
}
}
运行此命令时,所有输出为“请输入您的心率:”。输入整数后,程序结束。做错了什么?
答案 0 :(得分:0)
首先,您将创建两个具有相同输入类型(Scanner
)的System.in
对象,不建议这样做。相反,只需创建一个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
}
}
答案 1 :(得分:0)
您应该更改此方法以返回心率,如下所示:
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);
那应该可以解决您的问题。