0

我需要打印一个数组,但它只打印我输入的最后一个信息

这是打印代码

   for(int i=0; i<undergrad.length;i++){

        if(undergrad[i]!=null){
        System.out.println("Student Name : "+undergrad[i].getName()+"\n"
                + "Full Address : "+undergrad[i].getAddress()+"\n"
                + "Mobile No :"+undergrad[i].getPhone()+"\n"
                + "Number of Tests : "+undergrad[i].getTests()+"\n"
                + "GBA : "+undergrad[i].GBA()+"\n"
                + "Status : "+undergrad[i].computeGrade()+"\n"
                + "Internship : "+undergrad[i].getInternship()+"\n"
                + "Project Title : "+undergrad[i].getProject_Title()+"\n"
                + "Project Area : "+undergrad[i].getProject_Area()+"\n"
                + "Project Score : "+undergrad[i].computeProjectGrade()+"\n"
                + "****************************************\n");

        } 
    }

对象数组的大小为 10,但我可能会将信息放入少于 10 个(例如 4 个)中,当我打印时,我需要显示所有且只有我输入的 4 个

这就是添加部分

for(int i=0; i<undergrad.length; i++){

    undergrad[i]=new Undergraduate();


    System.out.println("Enter Student Name: ");
    undergrad[i].setName(in.nextLine());

    System.out.println("Full Address  : ");
    undergrad[i].setAddress(in.nextLine());

    System.out.println("Mobile No : ");
    undergrad[i].setPhone(in.nextLong());

    System.out.println("Number of test : ");
     undergrad[i].setTests(in.nextInt());
    tests=undergrad[i].getTests();

    for(int j=0; j<tests; j++){
        System.out.println("Test "+(j+1)+":");
        undergrad[i].setScores(in.nextInt(), j);
    }

    System.out.println("Internship: ");
    undergrad[i].setInternship(in.nextBoolean());

    in.nextLine();
    System.out.println("Project title: ");
    undergrad[i].setProject_Title(in.nextLine());

    System.out.println("Project Area: ");
    undergrad[i].setProject_Area(in.nextLine());

    System.out.println("Supervisor Grade: ");
    undergrad[i].setGrade(in.nextInt(), 0);

    System.out.println("Committee Grade: ");
    undergrad[i].setGrade(in.nextInt(), 1);

    System.out.println("\n");

  break;  
}

我需要休息一下,因为在输入有关一个学生的详细信息后,应询问用户他想要执行的操作(例如\为另一位学生编写详细信息或打印有关已写学生的详细信息的操作)

4

2 回答 2

2

break;最后有一个。删除它,它应该可以工作。

于 2014-07-19T12:01:50.157 回答
0

如果您说break;代码末尾需要整个代码才能工作,那么显然您每次都写入相同的数组索引 (0)。

修复程序的方法是删除for您当前拥有的循环,而是跟踪外部i循环中的索引,该循环为用户提供选择菜单。然后,每次你去填充一个新学生的代码时,增加你的变量。i

请记住,在实际代码中,您永远不会遇到这个问题,因为您将使用List<Student>自动处理这些问题的 a。

于 2014-07-19T11:57:55.457 回答