以下是采用student
数组和先前方法的另一种方法计算出的值的topStudentIndex
的方法。
我的数组中有多个对象。但是,for循环仅成功执行了一次循环,并且立即返回了第一个值。
我不知道为什么即使我的st.length
超过了for循环也停止了
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 ;
}
最佳答案
看起来像
double studentOverall = st[nextHighestStudentIndex ].getOverall();
应该
double studentOverall = st[i].getOverall();
因为您要检查数组中的所有学生,而不仅是第一个学生(由于将
st[nextHighestStudentIndex ]
初始化为0,因此nextHighestStudentIndex
始终返回第一个Student)。