【发布时间】:2019-09-29 10:14:09
【问题描述】:
此程序应要求提供学生姓名。然后,对于每个学生,将记录四个成绩。然后再次迭代,直到用户输入“C”退出循环。然后打印结果。 它只显示最后输入的四个元素。我认为我的 for 循环不会完成我想要的。我可能需要 .forEach 吗?在此之后,我还必须分别总结每个学生的每四个数字。每个学生必须有不同的数组列表吗? 到目前为止,这是我所拥有的:
package arrayList;
import java.util.Scanner;
import java.util.ArrayList;
public class TestGrades {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> studentName = new ArrayList<String>();
boolean loop = true;
while (loop) {
System.out.println(" Please Enter Student Name");
sc.nextLine();
String student = sc.nextLine();
if(student.equals("C"))
{
break;
}
else
{
studentName.add(student);
}
ArrayList<Double> studentGrade = new ArrayList<Double>();
System.out.println("Please enter Student Grade");
for (int j = 0; j < 4; j++) {
Double grade = sc.nextDouble();
studentGrade.add(grade);
}
System.out.println(studentName);
System.out.print(studentGrade);
}
}
}
我想按输入顺序打印每个 arrayList 的元素,首先是 studentName,然后是 studentGrade。 .forEach 有帮助吗?
【问题讨论】:
-
为什么不创建一个包含 his/her 标记数组的
Student类?这样您就可以拥有一个List<Student>,您需要的所有信息都将包含在该集合中.. -
我需要总结每个学生的所有双精度值(成绩),而不是总结学生的姓名。除非你的意思是我可以在 arrayList 中创建一个数组?我不确定它是如何工作的
-
好的,那么在
Student类中,您可以拥有一个名为sumOfMarks的属性,而不是标记数组。
标签: java loops foreach record prompt