-1

我的老师要求使用“for each”将数字分配给数组的第二维。我尝试使用以下代码执行此操作,但它不起作用:

int[][] Square = new int[5][5];

for(int row : Square[])

         for(int col : Square[][])

               -----
4

5 回答 5

4

尝试:

for ( int[] row : Square ) {
  for ( int col : row ) {
    // your code
  }
}
于 2012-09-25T12:23:22.660 回答
3

循环遍历 int 的二维数组会为您提供一个 int 的一维数组。循环遍历一维数组会给你一个 int。

for (int row[] : Square) {
    for(int col : row) {

    }
}
于 2012-09-25T12:23:39.403 回答
2

也许你的意图是

int[][] square = new int[5][5];
for(int[] row : square)
     for(int col : row)

但是,这通常不是很有用,因为您还需要知道索引。

int[][] square = new int[5][5];
for(int row=0; row < square.length; row++) {
     for(int col=0; col < square[row].length; col++) {
         int i = square[row][col];
     }
}
于 2012-09-25T12:24:24.520 回答
0

像这样?

int[][] Square = new int[5][5];
for(int[] row : Square) {
  for(int col : row) {
    System.out.println("Col = " + col);
  }
}

http://javafiddle.net/xfMLMy

于 2012-09-25T12:26:04.307 回答
0

由于这被标记为作业,我不会给你完整的答案。

但是,如果您想获取数组的大小,则需要获取相关数组的长度,例如

Square.length

获取数组数组的长度,以及

Square[x].length

获取数组的长度x。请注意,这为您提供了适当的数组索引,这可能是有用的。您可以使用以下方法进行迭代:

for (int[] row : Square) {
  ...

等等,它不会给你索引。查看for 循环中的 Oracle 基本知识部分以获取更多信息。

(顺便说一句,我会将变量重命名为square,而不是。使用首字母大写字母命名类类型Square是Java 惯例)

于 2012-09-25T12:22:56.837 回答