日期:2014-05-20  浏览次数:20925 次

+++++无运算结果+++++
import java.util.Scanner;


public class main {
public static  void main(String[] args){
Scanner s= new Scanner(System.in);
int [] a=new int[3];
for(int i=0;i<3;i++){
a[i]=s.nextInt();
}
for(int j=0;j<3;j++){
for(int i=0;i<3-j;i++){
if(a[i]>a[i+1]){
int temp=a[i+1];
a[i+1]=a[i];
a[i]=temp;
}
}
}
System.out.println("");
   for(int i=0;i<3;i++)
   System.out.print(a[i]+"");
}
}
最后输出的结果是
3434
343
2
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at main.main(main.java:14)
这是怎么回事?

------解决方案--------------------
在14行的位置数组越界错误
由于数组a的长度是3,即数组最大为a[2]当i= 2时
14行的 a[i+1] = a[3],此时已经超过了数组的最大长度


------解决方案--------------------
第三个for循环条件改成:
for(int i=0;i<3-j-1;i++){