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

Java二维数组清零时触发数组越界错误的问题求助

问题排查与修复方案

嘿,我一眼就瞅出问题所在了!你的chipClear方法里,内层循环的判断条件写错了,这直接导致了数组越界错误。

错误根源拆解

你看,外层循环是遍历行(变量i),条件i < squareNum是没问题的;但内层循环遍历列(变量j)时,你误把判断j的条件写成了i < squareNum - 1——这就意味着j会毫无限制地一直自增,直到超出数组的最大索引(你的数组是100x100,索引最大到99),自然就触发数组越界异常了。

修正后的代码

如果你的需求是清零前squareNum行、squareNum列的元素,把内层循环的条件改成j < squareNum就行(另外没必要减1,除非你确实只想清零到第squareNum-1列):

public void chipClear() {
    for( int i = 0; i < squareNum; i++) {
        for(int j = 0; j < squareNum; j++) { // 把i改成j,去掉多余的-1
            chipHere[i][j] = 0;
        }
    }
}

要是后续你想动态清零整个100x100数组(不依赖squareNum变量),可以写得更通用,避免硬编码数值:

public void chipClear() {
    for( int i = 0; i < chipHere.length; i++) {
        for(int j = 0; j < chipHere[i].length; j++) {
            chipHere[i][j] = 0;
        }
    }
}

额外小技巧(Java 8+)

如果你的项目用的是Java 8及以上版本,还可以用流API简化代码,一行搞定清零:

import java.util.Arrays; // 别忘了导入这个包

public void chipClear() {
    Arrays.stream(chipHere).forEach(row -> Arrays.fill(row, 0));
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 08:07:42