我有以下代码: 第一档:
public class StudentServices {
Scanner scan = new Scanner(System.in);
Student student = new Student();
Student[] array = new Student[5];
public void setStudentInfo(){
for(int i = 0; i < 5; i++){
System.out.println("Enter Student Name: ");
student.name = scan.nextLine();
array = new Student[i];
}
}
public void displayStudentInfo(){
for(int i = 0; i < 5; i++){
System.out.println("Student Name: "+ student.name);
}
}
}
第二档:
public class Student {
String name;
}
当我输入1,2,3,4和5时,我得到的输出是:
Student Name: 5
Student Name: 5
Student Name: 5
Student Name: 5
Student Name: 5
我知道类文件很复杂,但必须这样做。非常感谢帮助。
答案 0 :(得分:0)
主要问题在于你的forloop代码:
for(int i = 0; i < 5; i++){
array[i] = new Student();
System.out.println("Enter Student Name: ");
array[i].name = scan.nextLine();
}
尝试上面的代码。 我将一个新学生分配给索引i的数组。然后我读了这个名字并将其存储在学生名下。
您的输出代码也应该更改
for(int i = 0; i < 5; i++){
System.out.println("Student Name: "+ array[i].name);
}
您的问题是您没有正确使用阵列。数组的工作方式与变量完全相同,但您可以通过指定一个int的索引来访问元素。
查看http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html它会告诉您如何正确使用数组。
答案 1 :(得分:0)
public void setStudentInfo(){
for(int i = 0; i < 5; i++){
System.out.println("Enter Student Name: ");
Student student = new Student();
student.name = scan.nextLine();
array[i] = student;
}
}
public void displayStudentInfo(){
for(int i = 0; i < 5; i++){
System.out.println("Student Name: "+ array[i].name);
}
}