如何在循环中列出多维数组值

时间:2013-04-25 15:29:38

标签: java arrays loops

首先,对不起,如果我要求你做我的作业就好了......对我来说你不是,这个问题只涉及整个计划的一小部分正在制作中......换句话说,这还没有完成。

我会问我的老师,但这是一个在线课程。那么我会问我的朋友们的建议,但我是我学校唯一一个上这门计算机科学课程的孩子。 (这是一所小学校)

无论如何,这个程序完成后,将允许教师输入每个学生四个等级的学生列表。最后我会添加一些代码,让老师找到每个学生的平均值等等。

但目前我只是在上市学生的过程中。哪里有小问题......

每当我列出一个学生(他们的姓氏和名字)以及四个考试成绩时,这一切都很好地输出。然而,当我输出具有不同名称和不同考试成绩的第二名学生时,它会输出不同的名字......但是前一名学生的考试成绩。

实施例。

John Smith:67 68 57 87

Jane Doe:67 68 57 87(即使它应该是Jane Doe:54 68 75 91)

显然这是一个问题......因为所有的学生都没有完全相同的成绩......永远......

下面的代码......

public class StudentGradesView extends FrameView {
    int [][] aryStudent = new int [15][4]; //[15] being number of students and [4] being test scores...
    String[] studentNames = new String[15]; // I'm thinking this is might unnecessary now...but we'll see
    int numOfStudents = 0; //starting number of students at 0....

    int marks = 0;

    int test1;
    int test2;
    int test3;
    int test4;

    public StudentGradesView(SingleFrameApplication app) {
        //unimportant...just stuff added for GUI..
    }

    private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
        //test1Field through test4Field are the test scores....
        aryStudent[numOfStudents][0] = Integer.parseInt(test1Field.getText());
        aryStudent[numOfStudents][1] = Integer.parseInt(test2Field.getText());
        aryStudent[numOfStudents][2] = Integer.parseInt(test3Field.getText());
        aryStudent[numOfStudents][3] = Integer.parseInt(test4Field.getText());

        StringBuilder sb = new StringBuilder();

        for (int x=0; x < numOfStudents ; x++) {
            sb.append(firstNameField.getText() + " " + lastNameField.getText());
            for (int y=0; y < 4; y++) {
                sb.append(" " +aryStudent[x][y]);
            }
            sb.append("\n");
        }
        studentListField.setText(sb.toString());
        numOfStudents ++;
    }                                        
}

1 个答案:

答案 0 :(得分:0)

首先,你想要

for (int x=0; x<= numOfStudents; x++)

或当numOfStudents = 0时,你永远不会进入循环。

另外,addButtonActionPerformed是否有一个包含你给我们的代码的for循环?否则,似乎每次进入该方法时,numOfStudents将为0,当您退出时它将为1,但代码仅针对numOfStudents = 0执行。我错过了什么?