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

Java二维数组生成0、1随机数时出现数组下标越界异常的问题求助

解决Java二维数组随机填充时的数组越界异常

嘿,我一眼就揪出你代码里的问题啦!你碰到的ArrayIndexOutOfBoundsException完全是因为内层循环的判断条件写错了,咱们来慢慢捋清楚:

问题根源

看你内层循环的这段代码:

for (int j = 0; i< matrix.length;j++)

这里你误用了控制行的变量i来限制列循环的范围!内层循环本该遍历当前行的列数,也就是matrix[i].length,结果你写成了总行数的判断条件i < matrix.length。这样j会一直无脑递增,直到超出当前行的列数上限,自然就触发数组越界异常了。

修正后的完整代码

把内层循环的判断条件改成j < matrix[i].length就彻底解决问题了,修正后的代码如下:

import java.util.Random;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) { 
        Random r = new Random(); 
        Scanner input = new Scanner(System.in); 
        System.out.println("Enter number of rows"); 
        int row = input.nextInt(); 
        System.out.println("Enter number of columns"); 
        int column = input.nextInt(); 
        int matrix [][] = new int[row][column]; 
        for(int i = 0; i< matrix.length;i++){ 
            // 核心修正:把i<matrix.length改成j<matrix[i].length
            for (int j = 0; j < matrix[i].length;j++) { 
                matrix[i][j] = r.nextInt(2); 
                System.out.print(matrix[i][j]+ " "); 
            } 
            System.out.println(); 
        }
        input.close(); // 顺手加了关闭Scanner的代码,避免资源泄漏~
    } 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 17:57:32