Java 这个二维阵列有什么问题?

Java 这个二维阵列有什么问题?,java,arrays,syntax,formatting,2d,Java,Arrays,Syntax,Formatting,2d,我在Java中使用2D数组,这是我第一次这样做。我想知道数组有什么问题,因为我有很多错误。。。?(可能是一个非常愚蠢的错误) 代码 int board[21][21] = {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1}, {1, 0, 1, 0, 0, 1, 0, 0,

我在Java中使用2D数组,这是我第一次这样做。我想知道数组有什么问题,因为我有很多错误。。。?(可能是一个非常愚蠢的错误)

代码

    int board[21][21] = {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, 
  {1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1},
  {1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1},
  {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1},
  {1,0,1,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,1},
  {1,0,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1},
  {1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1},
  {1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1},
  {0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0},
  {1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1},
  {0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0},
  {1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1},
  {1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1},
  {1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1},
  {1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,0,1},
  {1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1},
  {1,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,0,1},
  {1,0,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1},
  {1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1},
  {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1},
  {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}};
错误列表

将第一行更改为
board[][]={{{所有数字}}
一切都会好起来。

将第一行更改为
board[][]={所有数字}
一切都会好起来。

您的声明是错误的

 int board[][] = new int[][] {{...

你的声明是错误的

 int board[][] = new int[][] {{...

从声明中删除维度:

int board[][]

从声明中删除维度:

int board[][]

首先,在声明中告知2D数组的大小时会出现编译错误

int board[21][21]
通常您希望这样做:

int board[][] = {{1,2}{1,3}}
这是一个2列2行的二维数组

 1 2
 1 3
因此,如果要创建具有21行21列的二维阵列,应执行以下操作:

int board[]]={{{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{,{,},{,{,},{,{,},{,},{,}


然后在内括号之间填充所需的内容。

首先,在声明中告知2D数组的大小时会出现编译错误

int board[21][21]
通常您希望这样做:

int board[][] = {{1,2}{1,3}}
这是一个2列2行的二维数组

 1 2
 1 3
因此,如果要创建具有21行21列的二维阵列,应执行以下操作:

int board[]]={{{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{,{,},{,{,},{,{,},{,},{,}


然后在内括号之间填入所需的内容。

删除21。您应该说

int board[][]=..


创建数组时必须定义数组的维度。例如,您可以说
new int[5]
并创建5个元素长的int数组。但当您将此数组分配给变量时,您可以说:
int[]arr=new int[5]
。这里
int[]
是一种类型(int-array)。它类似于C中的
int*
。在定义数组类型时,您不必说数组有多大。您只需说它的元素类型是什么以及它将有多少维度。

删除21。您应该说

int board[][]=..


创建数组时必须定义数组的维度。例如,您可以说
new int[5]
并创建5个元素长的int数组。但当您将此数组分配给变量时,您可以说:
int[]arr=new int[5]
。这里
int[]
是一种类型(int-array)。它类似于C中的
int*
。在定义数组类型时,您不必说数组有多大。您只需说它的元素类型是什么以及它将有多少维度。

您不能在声明中指定数组的大小。如果删除大小整数,它将编译。但是,您应该始终在声明变量时,将括号放在变量的类型上,而不是放在变量本身上:

int[][] board;
而不是:

int board[][];
如果要创建具有特定大小的空白数组,请使用
new
运算符:

int[][] board = new int[21][21];
但是,如果通过数组初始化定义数组,则永远不会指定大小

int[][] board = {{...}, ...};

不能在声明中指定数组的大小。如果删除大小整数,它将编译。但是,在声明变量时,应始终将括号放在变量的类型上,而不是放在变量本身上:

int[][] board;
而不是:

int board[][];
如果要创建具有特定大小的空白数组,请使用
new
运算符:

int[][] board = new int[21][21];
但是,如果通过数组初始化定义数组,则永远不会指定大小

int[][] board = {{...}, ...};

为什么将括号放在类型上比放在变量上更好?变量的维数更清楚。它还可以防止您创建格式不良的代码,如:
int x,arr[],doubleArr[],y;
它也与数组的构造一致,即
int[]arr=new int[5]
其中括号都在类型上而不是变量上。这也是一种检查样式冲突。因为变量的名称是
board
,而不是
board[]
,并且变量的类型是
int[][]
,而不是
int
,在其他情况下,变量都是使用
类型名称
声明的。为什么将括号放在类型上比放在变量上更好?更清楚的是变量的维度是什么。它还可以防止您创建格式不良的代码,如:
int x,arr[],doubleArr[]],y;
它也与数组的构造一致,即
int[]arr=new int[5]
,其中括号都在类型上而不是变量上。这也是一种检查样式冲突。因为变量的名称是
board
,而不是
board[]
,并且变量的类型是
int[]
,而不是
int
,在其他任何情况下,变量都是使用
类型名称声明的。谢谢大家,问题解决了!谢谢大家,问题解决了!