package zhuyong1;
import java.util.Arrays;
public class Yoo {
public static void main(String[] args) {
int[] scores={20,-52,39,96,57,45,43};
System.out.println("考试成绩前三名为:");
Yoo hello=new Yoo();
hello.showTop3(scores);
}
public void showTop3(int[] scores){
Arrays.sort(scores);
int nums=0;
for(int i=scores.length-1; i>0;i--){
if(scores[0]<0||scores[i]>100){
continue;
}
nums++;
if(nums>3);{
break;
}
}
System.out.println(scores[i]);
}
}
1.
System.out.println(scores[i]);
这句中的i定义是在for循环里面,而System.out.println(scores[i]);在for外面,i没有定义。
2.
if判断语句中scores[0] = -52,满足<0条件了就不会往下执行了。你最后得不到前三名的结果。
3.
我改了一下程序:
import java.util.Arrays; public class demo { public static void main(String[] args) { int[] scores = { 20, -52, 39, 96, 57, 45, 43 }; System.out.println("考试成绩前三名为:"); showTop3(scores); } public static void showTop3(int[] scores) { Arrays.sort(scores); for ( int i = scores.length - 1; i > scores.length-1-3; i--) { System.out.println(scores[i]); } } }