我目前正在学习Java并遵循一些在线教程。其中一项任务是通过获取他们的各种分数来计算一个人的身体年龄,获得这些分数的平均值,然后对其应用公式以获得总数。我可以用一个大班来做,但作业要求更进一步,将所有内容分成不同的班级。我的程序目前如下所示:
import java.util.Scanner;
public class fit2 {
public static void main(String[] args) {
int average, bodyAge;
average = average2();
System.out.println(average);
bodyAge = fitAge();
System.out.println(bodyAge);
}
public static int fs() {
int fs;
System.out.println("Enter first number: ");
Scanner bucky = new Scanner(System.in);
fs = bucky.nextInt();
return fs;
}
public static int ss() {
int ss;
System.out.println("Enter second number: ");
Scanner bucky = new Scanner(System.in);
ss = bucky.nextInt();
return ss;
}
public static int average2() {
int first, second, average;
first = fs();
second = ss();
average = (first + second) / 2;
return average;
}
public static int fitAge() {
int fitAge, average;
average = average2();
fitAge = average * 8 / 5 + 10;
return fitAge;
}
}
我的想法是为程序的每个部分使用不同的方法 - 两种方法来获取用户分数,然后将其传递给平均方法,然后将其传递到应用公式的最终方法中,然后将其传递回 Main 类,这将打印出该年龄以及平均年龄。
我在某处读到,您不应该在类中获取用户输入,而是将其放入 main 并使用参数将其传递到平均类中——任何人都可以就此提供建议吗?
谢谢。
尝试这样的事情(正如我对这个问题的评论所建议的那样(:
import java.util.Scanner;
public class fit2 {
public static void main(String[] args) {
System.out.println("Enter first number: ");
Scanner bucky = new Scanner(System.in);
int fs = bucky.nextInt();
System.out.println("Enter second number: ");
bucky = new Scanner(System.in);
int ss = bucky.nextInt();
int average = average2(fs, ss);
int bodyAge = fitAge(average);
System.out.println(average);
System.out.println(bodyAge);
}
public static int average2(int first, int second) {
int average;
average = (first + second) / 2;
return average;
}
public static int fitAge(int average) {
int fitAge;
fitAge = average * 8 / 5 + 10;
return fitAge;
}
}
我相信我理解你的问题 - 你不确定在你的程序中放置用户输入的位置。
在像这样的小程序中,将用户输入放在main()
方法中可能是明智的,这仅仅是因为您收集用户输入,将输入委托给对程序"幕后"数据执行计算的方法,然后将值返回给用户。
在您的特定实例中,这似乎是一个明智的决定,因为您的程序很小,并且是基于控制台的标准应用程序。将来可能并不总是如此,具体取决于您正在编写的程序。
实际上,如果它按预期运行并不重要,但为了简单起见(记住 KISS(,将用户输入放入您的main()
方法中可能是一个好主意。