此代码尝试将成绩从最高到最低排序。
我的代码:
public static Grades sort(Grades mergedGrades, Grades repeat) {
Grades sortedGrades = new Grades();
Grade highComp = null;
Grade highest = mergedGrades.get(0);
int index = 0;
for (int j = 0; j < mergedGrades.size(); j++) {
highComp = mergedGrades.get(j);
if (highComp.getGpa() > highest.getGpa()) {
highest = highComp;
//debug: System.out.println("getGpa: "+highest.getGpa());
index = j;
}
}
sortedGrades.add(highest);
mergedGrades.remove(index);
每次发现最高时它会添加到sortedGrades对象,并删除 有指数的成绩。但是,我不知道如何让它循环直到它为空。请教我。感谢。
教授的课程:
public int size() {
return this.size;
}
public boolean contains(Grade grade) {
for(int i = 0; i < this.size; i++) {
if(this.gradeArray[i].equals(grade)) {
return true ;
}
}
return false;
}
答案 0 :(得分:0)
如果你想使用while循环,你可以使用:
while(mergedGrades.size() > 0)
或者您可以使用嵌套for循环:
int initialMergedGradesLength = mergedGrades.size()
for(int i = 0; i < initialMergedGradesLength; i++)
或者这改进了循环:
for(Grade mergedGrade : mergedGrades)
虽然我不确定最后一个是否会编译。