首页 > 解决方案 > 为什么说是非法的表达开始?

问题描述

board 是一个已经声明的 3D 数组。我正在尝试直接为其分配一个值,但是,尝试这样做会给我带来很多错误。

board[2][][] = {
    {10, 15, 19, 21, 22, 22, 21, 19, 15, 10},
    {15, 20, 24, 26, 27, 27, 26, 24, 20, 15},
    {19, 24, 28, 30, 31, 31, 30, 28, 24, 19},
    {21, 26, 30, 32, 33, 33, 32, 30, 26, 21},
    {22, 27, 31, 33, 34, 34, 33, 31, 27, 22},
    {22, 27, 31, 33, 34, 34, 33, 31, 27, 22},
    {21, 26, 30, 32, 33, 33, 32, 30, 26, 21},
    {19, 24, 28, 30, 31, 31, 30, 28, 24, 19},
    {15, 20, 24, 26, 27, 27, 26, 24, 20, 15},
    {10, 15, 19, 21, 22, 22, 21, 19, 15, 10}
};

错误: 我不知道为什么会这样。

标签: javaarrays

解决方案


归功于伊斯林格

我假设 3d 板以类似的方式定义。

int board[][][] = new int[3][][];

然后,您可以将第 1 个维度中的第 3 个元素分配给其他两个维度。当然要记住数组是基于 0 的。

board[2] = new int[][] {
{10, 15, 19, 21, 22, 22, 21, 19, 15, 10},
{15, 20, 24, 26, 27, 27, 26, 24, 20, 15},
{19, 24, 28, 30, 31, 31, 30, 28, 24, 19},
{21, 26, 30, 32, 33, 33, 32, 30, 26, 21},
{22, 27, 31, 33, 34, 34, 33, 31, 27, 22},
{22, 27, 31, 33, 34, 34, 33, 31, 27, 22},
{21, 26, 30, 32, 33, 33, 32, 30, 26, 21},
{19, 24, 28, 30, 31, 31, 30, 28, 24, 19},
{15, 20, 24, 26, 27, 27, 26, 24, 20, 15},
{10, 15, 19, 21, 22, 22, 21, 19, 15, 10}
};

推荐阅读