【问题标题】:JAVA: Why does this for-loop print out the array columns and not rows?JAVA:为什么这个for循环打印出数组列而不是行?
【发布时间】:2017-06-23 08:20:12
【问题描述】:

我试图理解这个数组。我不明白为什么系统会打印出第 0 列而不是第 0 行。

 public static void main(String[] args) {
        int[][] wps = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};

        for(int[] wp : wps){
              System.out.println(wp[0]);
            //System.out.println(wp[1]);
            //System.out.println(wp[2]);

        }
    }

输出:

0
3
6
0
1
2
0
2

我的假设是

for(int[] wp : wps)

正在获取列,但我认为二维数组是结构化的

int [行][列]

如果有人可以向我解释这一点,那就太棒了。 提前致谢!

【问题讨论】:

  • 您正在打印每个子数组中的第一个元素:{{**0**,1,2}, {**3**,4,5}, {**6**,7,8}, ...
  • 二维数组是结构化的,但是你可以构造它们。它们本质上不是行优先或列优先。只有您的用法或解释。
  • 因为这就是你要求它做的事情。 wp 是行,在您的系统输出打印中,您要求打印该行的第一列。
  • wp 是您的行,在这一行中您选择第一列的值 (wp[0])。
  • 啊,好吧,所以 for(int[] wp : wps){ System.out.println(wp[0]);第一次是 [0][0] 第二次是 [1][0] 等等?

标签: java arrays multidimensional-array


【解决方案1】:

你有数组作为你的元素。在 wps 内部循环时,读取每个数组并打印其第 0 个元素。这就是为什么你会得到这样的结果。

【讨论】:

  • 啊,好吧,所以 for(int[] wp : wps){ System.out.println(wp[0]);第一次是 [0][0] 第二次是 [1][0] 等等?
  • 非常感谢,我现在明白了
【解决方案2】:

如果要将它们打印为表格,则应逐行打印,而不是逐列打印。一旦进入新行,就没有回头路了。

for(int[] wp : wps){
    for (int i : wp) {
        System.out.println(i + " ");
    }
}

【讨论】:

  • 非常感谢,非常感谢
猜你喜欢
  • 1970-01-01
  • 2015-02-15
  • 2016-02-11
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 1970-01-01
相关资源
最近更新 更多