package zjc;
import java.util.Arrays;
public class Test4 {
//完成 main 方法
public static void main(String[] args) {
//定义score数组
int [] score={89,-23,64,91,119,52,73};
//创建对象
Test4 Hello=new Test4();
//输出成绩
System.out.println("考试成绩的前三名为:");
//进行传参
Hello.Top3(score);
}
//定义方法完成成绩排序并输出前三名的功能
public void Top3(int [] score){
//对数组进行排序
Arrays.sort(score);
int num=0;
//遍历数组
for(int i=score.length-1;num<3 && i>0;i--){
if(score[i]>100 ||score[i]<0){
continue;
}
num++;
System.out.println(score[i]);
}
}
}
for(int i=score.length-1;num<3 && i>0;i--){
if(score[i]>100 ||score[i]<0){
continue;
}
num++;
System.out.println(score[i]);
}
你在用for遍历数组的时候就是从scores[]数组的最后一位scores[length-1]开始遍历的,即从最大的那位开始往小的方向遍历。遇到小于0或大于100的数就略过,只要符合大于0小于100就输出。所以即使Arrays.sort的排序是从小到大,但你遍历是从大到小遍历的,遍历后就输出。所以就是从大到小输出。
for(int i=score.length-1;num<3 && i>0;i--){
if(score[i]>100 ||score[i]<0){
continue;
}
num++;
System.out.println(score[i]);
这个for循环控制了最后的结果输出,for循环是倒序输出,由排序完之后数组的最后一个数字开始输出。
Arrays.sort(score);