2 回答
TA贡献1796条经验 获得超4个赞
在这种方法中:
void add(Student newStudent){
int i = 0;
while(i != classSize){ //classSize is the size of the roster array
if(roster[i] == null { //roster is an array of Student objects
roster[i] = newStudent;
}
i++;
}
}
您将第一个newStudent对象分配给数组的所有项目。
因此,当您尝试分配 2nd 或 3d 时,没有任何项目null,也没有完成任何分配。
完成第一个任务后停止循环:
void add(Student newStudent){
int i = 0;
while(i != classSize){ //classSize is the size of the roster array
if(roster[i] == null { //roster is an array of Student objects
roster[i] = newStudent;
break;
}
i++;
}
}
编辑:
您的ClassRoster班级将只返回最后一个学生的详细信息。
但是您还应该检查空值。
所以改成这样:
public String toString(){
String classString = "";
for(Student student : roster){
if (student != null)
classString += student.toString() + "\n";
}
return classString;
}
我不知道你的Student班级toString(),我认为它按预期工作。
TA贡献1789条经验 获得超10个赞
您的while循环用第一个元素填充所有可用位置。然后,由于没有位置是空的,所以没有插入任何内容。
循环可以简单地修改为:
void add(Student newStudent){
int i = 0;
while(i != classSize){ //classSize is the size of the roster array
if(roster[i] == null { //roster is an array of Student objects
roster[i] = newStudent;
break;
}
i++;
}
}
现在,一旦空位被填满,程序就会退出循环。
添加回答
举报