下面是一个方法,它接收student
数组和之前由另一个方法计算的值的topStudentIndex
。
我的数组中有多个对象。但是,for循环只能循环一次,并且它会立即返回第一个值。
即使我的st.length
超过
public static int computeNextHighestOverallStudentIndex(Student[] st, int topStudentIndex) {
double nextHighestOverall= 0;
int nextHighestStudentIndex = 0;
for (int i = 0; i < st.length; i++) {
if ((st[i] != null) && (!(i == topStudentIndex))){
double studentOverall = st[nextHighestStudentIndex ].getOverall();
if (studentOverall > nextHighestOverall) {
nextHighestOverall= studentOverall;
nextHighestStudentIndex = i;
}
}
}
return nextHighestStudentIndex ;
}
答案 0 :(得分:1)
看起来像是
double studentOverall = st[nextHighestStudentIndex ].getOverall();
应该是
double studentOverall = st[i].getOverall();
因为您要检查数组中的所有学生而不仅仅是第一个学生(st[nextHighestStudentIndex ]
将始终返回第一个学生,因为您将nextHighestStudentIndex
初始化为0)。
答案 1 :(得分:1)
你想用st [i]遍历整个数组(不是st [nextHighestStudentIndex])