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

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条)

报告相同问题?

悬赏问题

  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程