黑马程序员技术交流社区

标题: 新手,在编写Java基础程序遇到一个Bug,搞了半小时了。 [打印本页]

作者: lmy518    时间: 2015-10-25 20:57
标题: 新手,在编写Java基础程序遇到一个Bug,搞了半小时了。
import java.util.Arrays;

public class ArraysTest {
        public static void main(String[] args) {
                int[] arr = {15,59,86,57,11};
               
                System.out.println("排序前:");
                System.out.println(Arrays.toString(arr));
               
                //排序
                bubbleSort(arr);
               
                System.out.println("排序后:");
                System.out.println(Arrays.toString(arr));
        }
       
        public static void bubbleSort(int[] arr){
                //外层循环用来控制比较的次数
                for (int i = 0; i < arr.length-1; i++) {
                        //i=0,1,2,3

                        for (int j = 0; j < arr.length; j++) {
                                //j=0,1,2,3
                                //arr[j] 和 arr[j+1]
                                //   0       1
                                //   1       2
                                //   2       3
                                //   3       4   
                               
                                if (arr[j] > arr[j+1]) {
                                        //两个数交换
                                        int temp = arr[j];
                                        arr[j] = arr[j+1];
                                        arr[j+1] = temp;
                                }
                        }
                }
               
        }
}




控制台为什么会报那样的错误啊,怎么修改?大神们!

QQ图片20151025205432.png (8.76 KB, 下载次数: 6)

QQ图片20151025205432.png

作者: 307117758    时间: 2015-10-25 21:03
数组长度超限了;
for (int j = 0; j < arr.length; j++)     这里应该是 j<arr.length()-1,不然你后面arr[j] = arr[j+1]中j+1就超限了。
作者: juejin    时间: 2015-10-25 22:35
下标越界  楼上正解
作者: 南烟    时间: 2015-10-26 11:56
for (int j = 0; j < arr.length; j++) 改为arr.length-1
作者: lmy518    时间: 2015-10-26 20:36
南烟 发表于 2015-10-26 11:56
for (int j = 0; j < arr.length; j++) 改为arr.length-1

Thank You !




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2