为什么跳过数组索引0?

时间:2016-04-22 08:18:16

标签: java arrays for-loop

我遇到了这个计算机科学问题,并没有按照我写下来的方式来解决问题。这是代码:

int[][]grid = {{1,2,3,4},{5,6,7},{8,9},{10}};

    for(int i = 0; i < grid.length; i++)
        for(int j = 0; j < grid[i].length; j++)
            grid[j][i] = grid[i][j];
    System.out.println(Arrays.toString(grid[1]));

它应该将grid [0]更改为{1,5,8,10},但它不会对它做任何事情。为什么跳过那一个? i不应该从0开始,因此第二个for循环应该从grid[0][0] = grid[0][0]开始,然后是grid[1][0] = grid[0][1]

1 个答案:

答案 0 :(得分:3)

这是因为您在每次迭代时更改初始变量(网格),将输出放入单独的变量然后打印出来。

说明:

grid = {{1,2,3,4},{5,6,7},{8,9},{10}};

在第一个子循环(循环j)之后

grid = {{1,2,3,4},{2,6,7},{3,9},{4}};

然后,当它执行后续的i循环时,您可以看到它将数字放回原来的位置。如果以空数组作为输出变量开始,则可以避免此问题。