import java.util.Arrays; public class HelloWorld { //完成 main 方法 public static void main(String[] args) { int[] scores={89,-23,64,91,119,52,73}; HelloWorld hello=new HelloWorld(); hello.score(scores); } //定义方法完成成绩排序并输出前三名的功能 public void score(int[] score1){ Arrays.sort(score1); System.out.println("考试成绩的前三名为:"); for(int i=score1.length-1,j=0;j<=3;i--,j++){ if(score1[i]<=100&&score1[i]>=0){ System.out.println(score1[i]); } } } }
上面是我的代码
方法中j的初始值设置的是0,循环条件是j<=3,按理说应该输出四次但结果只输出了三次,什么问题?求大神解惑
scores={89,-23,64,91,119,52,73} 119大于100,所以你循环四次, if(score1[i]<=100&&score1[i]>=0)这个条件把119过滤掉了,这个写法是错的,应该这样写:
import java.util.*;
public class HelloWorld {
// 完成 main 方法
public static void main(String[] args) {
int[] scores = { 89, -23, 64, 91, 119, 52, 73 };
HelloWorld hello = new HelloWorld();
hello.score(scores);
}
// 定义方法完成成绩排序并输出前三名的功能
public void score(int[] score1) {
Arrays.sort(score1);
System.out.println("考试成绩的前三名为:");
for (int i = score1.length - 1, j = 0; j < 3; i--) {
if (score1[i] <= 100 && score1[i] >= 0) {
System.out.println(score1[i]);
j++;
}
}
}
}