首页 > 解决方案 > 如何理解java中的循环和数组

问题描述

我对确实有嵌套循环来打印二维数组的数组循环感到很困惑。/它包含一个没有花括号的循环,第二个循环表示循环的花括号的方式正好相反......

因为我正在学习,所以我刚刚输入了代码并得到了输出。

public class TwoDimensional {
    private int i, j, k = 0;
    int[][] twod = new int[4][5];

    public void DoubleT() {
        for (i = 0; i < 4; i++)
            for (j = 0; j < 5; j++) {
                twod[i][j] = k;
                k++;

            }
        for (i = 0; i < 4; i++) {
            for (j = 0; j < 5; j++)
                System.out.print(twod[i][j] + " ");
            System.out.println();
        }
    }
}

它生成的结果是 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

标签: java

解决方案


尝试这个 :

    public class TwoDimensional {
        private int i, j, k = 0;
        int[][] twod = new int[4][5];

        public void DoubleT() {
            for (i = 0; i < 4; i++)
                for (j = 0; j < 5; j++) {
                    twod[i][j] = k;
                    k++;
                      }
                }
            for (i = 0; i < 4; i++) {
                for (j = 0; j < 5; j++){
                    System.out.print(twod[i][j] + " ");
                               }
                System.out.println();     
                       }
    }

要正确使用大括号,请始终考虑循环的目的,您希望它们何时完成以及何时继续。在您的情况下,您将需要针对不同任务的嵌套循环,因此您必须正确界定这些任务中的每一项。

填充二维数组:

            for (i = 0; i < 4; i++)
                for (j = 0; j < 5; j++) {
                    twod[i][j] = k;
                    k++;
                }
           }

打印二维数组值:

            for (i = 0; i < 4; i++) {
                  for (j = 0; j < 5; j++){
                        System.out.print(twod[i][j] + " ");
                  }
                    System.out.println();
            }

请注意,对于填充或打印数组,您的第一个循环(迭代器 i)负责该行。它会停在 i=3,第 3 行。所以你会在第 0 行,直到你完成该行所有列的值( [0][0],[0][1],[0 ][2],[0][4] ),当您的第一行完全填满或打印时,您只想转到第二行,依此类推。在打印案例中,您需要在 'i' 增量(新行号)之前和拥有所有 'j' 值之后更改行。

总而言之,当您的列 ('j') 完成时,您只需要增加行 ('i') 或转到下一行 (println())。


推荐阅读