[英]Populating a 2D Array Java
我需要创建一个二维数组,该数组可以读取50个学生的学生证及其7个学科标记中的每一个。 我想出了一种存储主题标记的方法,但不确定如何存储学生证。 这是到目前为止的代码。
public static void main(String[] args)
{
double mark;
double[][] studs = new double[50][7];
Scanner fromKeyboard = new Scanner(System.in);
for (int studentNo = 0; studentNo < 3; studentNo++) {
System.out.println("enter student ID number for student " + studentNo);
for (int moduleNo = 0; moduleNo < 2; moduleNo++) {
System.out.println("Enter users mark for module " + moduleNo);
mark = fromKeyboard.nextDouble();
studs[studentNo][moduleNo] = mark;
}
}
}
您只有一个原始类型的数组,但是有两条信息。
两个简单的选择是
1)使用另一个数组存储ID
2)(更好的解决方案IMO)创建您自己的Student
类,并定义一个数组Student[]
(一个学生应包含一个标记数组的字段)
您可以使用array [n] [0]存储学生ID。
这应该工作:
public static void main(String[] args)
{
double mark = 0d;
int id = 0;
double[][] studs = new double[50][8];
Scanner fromKeyboard = new Scanner(System.in);
for (int studentNo = 0; studentNo < 50; studentNo++) {
System.out.print("enter student ID number for student " + (studentNo + 1) + ":");
id = fromKeyboard.nextInt();
studs[studentNo][0] = id;
for (int moduleNo = 1; moduleNo < 8; moduleNo++) {
System.out.print("Enter mark of student " + id + " for module " + moduleNo);
mark = fromKeyboard.nextDouble();
studs[studentNo][moduleNo] = mark;
}
}
fromKeyboard.close();
}
笔记:
例如,如果您不能修改原始数组或需要存储学生姓名,则可以创建一个新数组来存储学生ID。
String[] studentsId = new String[50]; int[] studentsId = new int[50];
使用时记得关闭资源: fromKeyboard.close();
当我正确理解您的问题时:
public static void main(String[] args)
{
double[][] studs = new double[50][8];
Scanner fromKeyboard = new Scanner(System.in);
for (int studentNo = 0; studentNo < 50; studentNo++) {
System.out.println("enter student ID number for student " + studentNo);
studs[studentNo][0] = fromKeyboard.nextDouble(); //save id
for (int moduleNo = 1; moduleNo < 8; moduleNo++) {
System.out.println("Enter users mark for module " + moduleNo);
studs[studentNo][moduleNo] = fromKeyboard.nextDouble(); // your 7 marks
}
}
}
您走在正确的轨道上。
您没有读学生没有输入。 因此,您需要阅读该内容并将其放在内部循环之前的第一个单元格中。 然后将所有标记放在旁边的同一行中。 这取决于学生证的类型,是字符串还是数字?
此外,为什么数组中有7列,而学科成绩却只循环两次? 还有更多要做的事吗? 如果没有,请避免占用空间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.