nextHighestStudentIndex

nextHighestStudentIndex

以下是采用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)。

08-15 23:51