我最近潜入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 阿姆斯特丹
答案 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] = 0
和twoD[3][4] = 19
。
如果想看看k增量如何添加此语句 - System.out.print(k);在twoD [i] [j] = k之前;并添加'System.out.println();'在'k ++之后; }“