You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java填充二维数组触发ArrayIndexOutOfBoundsException异常如何解决

错误原因
  • 外层行循环初始值设为0,首次执行循环时r=0,运行arr[r-1][c]时会尝试读取下标为-1的行,Java数组下标从0开始,负数下标直接触发ArrayIndexOutOfBoundsException,和你收到的报错信息完全匹配。
  • 现有逻辑会覆盖你提前硬编码的第0行基准值,不符合你"用第0行作为基准填充其余行"的预期。
修正代码

populate2D方法修正

public static void populate2D (int[][] arr) {
    // 硬编码第0行基准值
    arr[0][0] = 0;
    arr[0][1] = 10;
    arr[0][2] = 100;
    arr[0][3] = 500;
    arr[0][4] = 1000;
    arr[0][5] = 5000;

    // 行循环从第1行开始,跳过已完成赋值的第0行
    for (int r = 1; r < arr.length; r++) {
        arr[r][0] = r;
        for (int c = 1; c < arr[r].length; c++) {
            int priorNum = arr[r-1][c];
            arr[r][c] = priorNum * 2;
        }
    }
}

print2DArray方法修正

你提供的打印方法末尾多了1个多余的右大括号,删除后即可正常运行:

public static void print2DArray(int[][] arr) {
    for (int r = 0; r < arr.length; r++) {
        for (int c = 0; c < arr[r].length; c++) {
            System.out.print(arr[r][c] + "\t");
        }
        System.out.println();
    }
}

内容的提问来源于stack exchange,提问作者noelle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:36:02