无法打印整个阵列

时间:2014-07-19 11:52:36

标签: java printing arrayobject

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

这是打印代码

   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;  
}

我需要休息,因为在输入有关一名学生的详细信息后,应该询问用户他想要做的动作(例如\写另一名学生的详细信息或打印有关学生的详细信息)

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

修复程序的方法是删除您当前拥有的for循环,而是跟踪外部循环中的索引i,即提供的循环用户选择菜单。然后,每次您转到填写新学生的代码时,请递增i变量。

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