侠義芝士 2019-09-13 09:33 采纳率: 100%
浏览 536
已采纳

Java数组总是溢出是怎么回事?求解!!

我在Java定义一个数组,然后通过变量输入数组大小,
再用for循环初始化数组,可总显示数组索引超出界限!!

public static void main(String[] args) {
        int n;
        Scanner s = new Scanner(System.in);
        n = s.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = s.nextInt();
        }
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > arr[i + 1]) {
                x = arr[i];
            }
        }
        System.out.println(BinarySearch(arr, x, n));
    }

这是其中一部分,我寻思for中i怎么就溢出了,i改为i<n 也不行

我的输入是 
7
1 2 3 9 8 6 5 

到底是怎么回事?

图片说明

  • 写回答

2条回答

  • naxieren1992 2019-09-13 09:57
    关注

    32行,当i=6时候,i+1就为7,超过了数组的下标。你可以再加个判断条件 : (i+1)<n

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?