java.lang.ArrayIndexOutOfBoundsException: 意思是数组索引越界异常 ,访问了不存在的索引。
第一,你这里有个arr[i+1],当i循环到5时,这个引用就是arr[6],而这个数组最大索引是5,所以越界了,这个问题只需要把for循环里改为i<5就可以了。
第二,出现这么多组输出是因为你把输出语句放在for循环里面了,所以每次循环都会输出,解决方法就是把输出语句放在for循环外面。
第三,min变量要放在for循环外面定义哦,不然没法在for循环外面输出的~
按你的思路改了以下的代码,你参考一下咯,
public class MinDemon {
public static void main(String[] args) {
int [] arr={18,9,3,2,4,5};
int min=arr[0];
for (int i=0;i<arr.length-1 ;i++ ){
if (arr[i]<arr[i+1]){
min=arr[i];
arr[i]=arr[i+1];
arr[i+1]=min;
}else{
min=arr[i+1];
}
}
System.out.println("min="+min);
}
}
这个是我刚写的:
public class MinDemon {
public static void main(String[] args) {
int [] arr={18,9,3,2,4,5};
int min=arr[0];
for (int i=0;i<arr.length ;i++ ){
if (arr[i]<min){
min=arr[i];
}
}
System.out.println("min="+min);
}
} |