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

Java二维数组填充空白触发ArrayIndexOutOfBoundsException问题咨询

排查Java数组越界错误的原因及修正方案

嘿,我来帮你搞定这个ArrayOutOfBoundsException的问题~咱们一步步拆解:

核心错误:数组索引越界

Java里的数组是从0开始索引的,你定义的names数组行长度是maxRows=10,也就是说行的有效索引范围是0到9(一共10行)。但你的外层while循环写的是:

while(y <= maxRows)

当y增长到10的时候,你尝试访问names[10][x],这明显超出了数组的行边界,直接触发数组越界异常。

额外的变量名错误

除了越界问题,你的代码还有两个变量名不匹配的问题,会导致编译失败:

  • 内层循环里用了index,但你定义的内层循环变量是x,应该把index换成x;
  • 外层循环最后用了counter++,但控制循环的变量是y,应该改成y++,不然会陷入无限循环。

修正后的代码

public class Untitled { 
    public static void main(String[] args) { 
        int maxRows = 10 ; 
        String names[][] = new String[maxRows][2] ; 
        int y = 0 ; 
        // 把<=改成<,确保y最大到9
        while(y < maxRows) { 
            int x = 0 ; 
            // 把index换成x,变量名统一
            while (x < 2) { 
                names[y][x] = " " ; 
                x++ ; 
            } 
            // 把counter换成y,控制外层循环递增
            y++ ; 
        } 
    } 
}

小提示

以后处理数组循环的时候,一定要记住数组长度是元素的总数,最大索引是长度减1,循环条件用< 数组长度就不会踩越界的坑啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 21:27:29