为什么每个尺寸的左侧尺寸都不等于右侧尺寸?

问题描述

for-each中声明的大小始终小于数组的大小。为什么?

int[][][] c = {{{1,2,3}}};
for(int [][] z : c )
    //code

c是3D数组,所以z应该吗? 喜欢:

int[][][] c = {{{1,3}}};
for (int[][][] z : c) // which is syntactically wrong
    //code

谢谢。

我从评论和以下答案中了解到的答案:for-each内的声明

3D数组for-each中的

将每个2D数组视为一个元素,

2D数组for-each中的

会将每个1D数组视为一个元素,依此类推。

在1D数组中,它将数组中的元素直接作为元素。

解决方法

将该构造读取为for-each循环。在这种情况下,对于int[][]中的每个int[][][]。另一个示例,for-each中的int int[]

int[] arr = {1,2,3};
for (int i : arr) {
    System.out.println(i);
}