我需要允许用户输入任意数量的学生。他们按“C”结束数据输入。我正在考虑创建一个学生类(class)(我的代码目前不代表这一点)和每个学生 4 个对象。每组 4 个对象是要相加并平均的数字等级。
我已经尝试过使用 while 循环来制作 arrayList,并且我已经研究过 map 。每组 4 个成绩对应一个学生,必须分别求和和平均。
package arrayList;
import java.util.Scanner;
import java.util.ArrayList;
public class TestGrades {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> studentName = new ArrayList<String>();
ArrayList<Double> studentGrade = new ArrayList<Double>();
boolean loop = true;
while (loop) {
System.out.println(" Please Enter Student Name");
String student = scanner.nextLine();
if(student.equals("C"))
{
break;
}
else
{
studentName.add(student);
}
System.out.println("Please enter Student Grade");
for (int j = 0; j < 4; j++) {
Double grade = Double.parseDouble(scanner.nextLine());
studentGrade.add(grade);
}
System.out.println(studentName);
System.out.print(studentGrade);
}
}
}
这里的问题确实是,我将所有输入的数字都放在一个 arrayList 中,并且我不知道每次输入新学生时是否可以自动创建一个新的 arrayList。理想情况下,每个 arrayList 仅包含 4 个 double 值。
最佳答案
请注意,成绩与学生相关,并且始终限制为 4。 因此,我建议实现一个类(class)学生的动态列表,其中包含成绩数组。
示例:
import java.util.Scanner;
import java.util.ArrayList;
public class TestGrades {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Student> studlist = new ArrayList<Student>();
boolean loop = true;
while (loop) {
System.out.println(" Please Enter Student Name");
String scanedline = scanner.nextLine();
if(scanedline.equals("C"))
{
break;
}
else
{
studlist.add(new Student(scanedline));
}
System.out.println("Please enter Student Grade");
for (int j = 0; j < 4; j++)
{
System.out.print(""+j+">");
Double scannedgrade = Double.parseDouble(scanner.nextLine());
studlist.get(studlist.size() - 1).grade[j]=scannedgrade;
}
System.out.println(studlist.get(studlist.size() - 1).name);
for (int j = 0; j < 4; j++)
System.out.print(studlist.get(studlist.size() - 1).grade[j] + " ");
System.out.println("");
}
}
private static class Student
{
String name;
Double [] grade;
Student (String s)
{
this.name = s;
grade = new Double[4];
}
}
}
关于Java - 接受用户输入来创建未知数量的类对象/数组/数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58160129/