我需要打印一个数组,但它只打印我输入的最后一个信息
这是打印代码
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;
}
我需要休息,因为在输入有关一名学生的详细信息后,应该询问用户他想要做的动作(例如\写另一名学生的详细信息或打印有关学生的详细信息)
答案 0 :(得分:2)
最后你有一个break;
。
删除它,它应该工作。
答案 1 :(得分:0)
如果你说代码末尾的break;
是整个代码工作所必需的,那么显然你每次都写入相同的数组索引(0)。
修复程序的方法是删除您当前拥有的for
循环,而是跟踪外部循环中的索引i
,即提供的循环用户选择菜单。然后,每次您转到填写新学生的代码时,请递增i
变量。
请注意,在实际代码中,您永远不会遇到此问题,因为您将使用自动处理这些问题的List<Student>
。