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

Java运行代码出现Index out of bound数组索引越界异常原因咨询

异常原因分析
  • 二维数组初始化逻辑错误
    本次运行输入的q值为1,第一次进入循环时变量i的值为0,执行sum = new int[i][n];相当于创建了一个行数为0的二维数组,该数组第一维没有任何有效元素,不存在合法下标。
  • 数组下标访问超出合法范围
    Java数组下标从0开始计数,长度为m的数组合法下标范围为0 ~ m-1。你创建的二维数组第一维长度为i,而你后续直接访问sum[i][0],下标值刚好等于数组长度,必然超出合法范围。

本次抛出的异常就是第一次循环时,访问第一维长度为0的数组的下标0,触发了下标越界校验,对应报错信息Index 0 out of bounds for length 0。

修正方案

如果需要存储q次循环的计算结果,调整代码逻辑如下:

Scanner sc = new Scanner(System.in);
int a=0,b=0,n=0;
int q = sc.nextInt();
// 先初始化二维数组第一维,长度为查询次数q
int[][] sum = new int[q][];

for(int i=0;i<q;i++){
    a = sc.nextInt();
    b = sc.nextInt();
    n = sc.nextInt();
    // 为当前第i行单独初始化长度为n的一维数组
    sum[i] = new int[n];
    sum[i][0] = a +  (int)Math.pow(2,0) * b;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:57:03