二维阵列4x5矩阵

时间:2017-02-24 22:10:09

标签: java multidimensional-array

我最近潜入Java并遇到了二维数组。有一段时间了,我正在尝试理解这段代码:

   int twoD[][]= new int[4][5];
int i, j, k = 0;

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

我无法弄清楚这段代码的年代表是如何工作的。我知道,对于每一行,应该进行5列输出,但这是如何在步骤中实现的呢?

非常感谢!

Roeland 阿姆斯特丹

4 个答案:

答案 0 :(得分:3)

第一个循环遍历每一行,第二个嵌套循环用于此行中的每个元素,每次都将k的值设置为此数组并递增1

答案 1 :(得分:0)

考虑int[4][1]输出

0
1
2
3

然后考虑int[4][2]

0 1
2 3
4 5
6 7

现在看模式?

答案 2 :(得分:0)

按时间顺序,你的意思是数组的工作顺序,我假设:

 int twoD[][]= new int[4][5];

以下是简短形式:

int[][] twoD= new int[4][];
twoD[0] = new int[5];
twoD[1] = new int[5];
twoD[2] = new int[5];
twoD[3] = new int[5];The arrays in most of the computer lanaguages will start with the index 0.

二维数组必须包含数组 - int [4] [5]有两个参数4和5.这意味着它有4行5列。 例如,您创建的二维数组如下所示:

int[][] two = new int[][]{
{0, 1, 2, 3, 4},
{5, 6, 7, 8, 9},
{10, 11 12, 13, 14},
{15, 16, 17, 18, 19}
};

第一个循环

for(i=0; i<4; i++)

负责循环遍历行,第二个循环用于循环

for(j=0; j<5; j++)

遍历列。

由于您正在打印for循环的迭代值,如0,1,2,3等...输出就像您得到的那样。

我个人建议你亲自操作单维数组,比如 int [] array = {0,1,2,3,4}

使用像

这样的for循环
for(j=0; j<5; j++) 
 System.out.println(array[j]);

这将打印

0 1 2 3 4

这将使你的学习变得有趣。 干杯!

答案 3 :(得分:0)

'i'与[0 - 4]不同,对于i的每个值,(通过内部for循环)j从[0-5]变化。所以(i,j)对来自(0,0),(0,1)..(0,4),(1,0),(1,1)......(3,4) )。

'twoD[i][j] = k'使用calue k指定第二行的第二行的第j列。 k从'0'开始,每次递增1(通过k++)。因此k(以及twoD[i][j])的值从0到19变为twoD[0][0] = 0twoD[3][4] = 19

如果想看看k增量如何添加此语句 - System.out.print(k);在twoD [i] [j] = k之前;并添加'System.out.println();'在'k ++之后; }“