java新手请求高手帮助

来源:百度知道 编辑:UC知道 时间:2024/05/14 08:41:04
我刚开始学java,遇到书上的一道题"给定一个数组:int[]arrayOfInts={32,87,3,589,12,1076,2000,8,622,127};请按从小到大的顺序排列,并打印出来.
我的编译
public class mmm
{
public static void main(String []args)
{
int []arrayOfInts={32,87,3,589,12,1076,2000,8,622,127};
int m=0;
for(int j=0;j<10;j++){
for(int i=0;i<10;i++){
if(arrayOfInts[i]>arrayOfInts[i+1]){
m=arrayOfInts[i];
arrayOfInts[i]=arrayOfInts[i+1];
arrayOfInts[i+1]=m;
}
}
}
System.out.println("排序后为:");
for(int i=0;i<10;i++){
System.out.println(arrayOfInts[i]);
}
}
}
在dos下面编译,显示是正确的,但是当我运行的时候却是
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:10
at mmm.main(mmm.java:9)
哪位高手能告诉我这是什么错误.怎么改.
有正确的编码也可以,谢谢!

出错表示数组的下标超出了范围,也就是说你的数组大小是10,下标从0开始最大是9,但是你用到了10。
你把循环比较的代码,从10改为9就可以了。
for(int i=0;i<9;i++){