慕大侠
2015-08-08 16:06
老师好,没找出原因,哪里不对
import java.util.Arrays;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
int[] scores = {89,-23,64,91,119,52,73};
System.out.println("考试成绩前三名:");
HelloWorld hello = new HelloWorld();
hello.showTop3(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void showTop3(int[] scores)
{
Arrays.sort(scores);//使用Arrays.sort的方式实现数组排序
int num = 0;
for(int i = scores.length;i>=0;i--)
{
if(scores[i]<0||scores[i]>100) // 判断成绩的有效性
{
continue; //如果成绩无效,则退出本次循环,忽略此成绩
}
num++;
if(num>3)
{
break;
}
System.out.println(scores[i]);
}
}
}
运行结果:
考试成绩前三名:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at HelloWorld.showTop3(HelloWorld.java:19)
at HelloWorld.main(HelloWorld.java:10)
(int i = scores.length;i>=0;i--)这里有问题。因为数组下标的取值范围是0到scores.length-1
Java入门第一季(IDEA工具)升级版
1165550 学习 · 17586 问题
相似问题