我目前正在学习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类,它将打印出该年龄以及平均年龄。
我在某处读到你不应该在课程中获得用户输入但是在主要文件中使用参数将其传递给普通类 - 有人可以就此提出建议吗?
感谢。
答案 0 :(得分:1)
尝试这样的事情(正如我对该问题的评论所建议的那样):
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;
}
}
答案 1 :(得分:0)
我相信我理解您的问题 - 您不确定将用户输入放在程序中的哪个位置。
在像这样的小程序中,将用户输入放在main()
方法中可能是明智的,这完全是因为您收集用户输入,将输入委托给执行“引擎盖下”数据计算的方法“该程序,然后将值返回给用户。
在您的特定实例中,这似乎是一个明智的决定,因为您的程序很小并且是基于控制台的标准应用程序。根据您正在编写的程序,将来可能并非总是如此。
实际上,如果它按预期运行并不重要,但为了简单起见(请记住KISS)将用户输入放在main()
方法中可能是个好主意。