首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >“索引0超出范围”试图在Java中分配给数组[重复]

“索引0超出范围”试图在Java中分配给数组[重复]
EN

Stack Overflow用户
提问于 2019-05-24 05:11:08
回答 2查看 0关注 0票数 0

这个问题在这里已有答案:

  • 是什么导致java.lang.ArrayIndexOutOfBoundsException以及如何防止它? 24个答案

试图为生活网格制作代码,但一直说:

线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:GameOfLife.main中长度为0的索引0超出范围(GameOfLife.java:13)

代码语言:javascript
复制
import java.util.Random;

public class GameOfLife{
    public static void main(String[] args) {

        int column = 10;
        int row =10;
        int[][] board = {};
        Random rand = new Random();

        for(int i = 0; i < column; i++ ){
            for(int j = 0; j < row; j++ ){
                board[i][j] = rand.nextInt(2);
            }

        }

        System.out.println(board);

    }
}
EN

回答 2

Stack Overflow用户

发布于 2019-05-24 13:14:29

您收到此错误是因为您尝试访问此数组中不存在的元素。

你应该这样做来迭代现有的元素(在这种情况下是无):

代码语言:javascript
复制
for(int i = 0; i < board.length; i++ ){
    for(int j = 0; j < board[i].length; j++ ){
        board[i][j] = rand.nextInt(2);
    }
}

或正确初始化此数组:

代码语言:javascript
复制
int[][] board = new int[rows][colums];

所以你实际上要填充细胞。

票数 0
EN

Stack Overflow用户

发布于 2019-05-24 14:59:12

您应该使用长度定义数组

代码语言:javascript
复制
public class GameOfLife{
public static void main(String[] args) {

    int column = 10;
    int row =10;
    //Here it is...
    int[][] board = new int[column][row];
    Random rand = new Random();

    for(int i = 0; i < column; i++ ){
        for(int j = 0; j < row; j++ ){
            board[i][j] = rand.nextInt(2);
        }

    }

    System.out.println(board);

  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档