所以这个问题更具理论性,因为我刚开始学习Java语言。这可能听起来很基本,但无论如何我想问它。
这是我的二维数组的代码。
int matrix[][] = new int[5][];
for (int i = 0; i < matrix.length; i++){
matrix[i] = new int[i];
for(int j = 0; j < matrix[i].length; j++){
matrix[i][j] = i;
}
}
第一个循环设置每个内部数组的元素数。
当我指定&#34; i&#34;对于矩阵[i] [j],结果将是:
matrix[0] is <>
matrix[1] is <1>
matrix[2] is <2, 2>
matrix[3] is <3, 3, 3>
matrix[4] is <4, 4, 4, 4>
&#34; j&#34;的结果在相同的代码中:
for(int j = 0; j < matrix[i].length; j++){
matrix[i][j] = j;
}
将是:
matrix[0] is <>
matrix[1] is <0>
matrix[2] is <0, 1>
matrix[3] is <0, 1, 2>
matrix[4] is <0, 1, 2, 3>
所以我试着理解为什么当我使用&#34; i&#34;为了填充数组,我在数组中重复数字,而我使用&#34; j&#34;它产生的值从0,1,2 ......
开始那么请你一步一步地向我解释循环如何迭代数组,迭代数组的概念?我真的很感激给予的帮助!谢谢!
答案 0 :(得分:1)
你有嵌套循环;对于第二个循环的每次迭代,第一个值将重复(对于第一个示例)。因此,举一个简单的例子,我们拥有的是......
在外循环的第一次迭代中 - i = 1, 内环j = 1。
所以我们有1 [1,2,3,..., n ]。
第二个例子j
&#34;走路&#34;一对一(即; 1,2,3,4 ......)。 <{1}}代表
&#34; [1,2,3,..., n ]&#34;以上例子。
是嵌套循环的本质。
答案 1 :(得分:1)
有评论版:
提示:当您不了解某段代码的工作原理时,请自行编写类似的评论。
//for every "available space" in our "matrix" variable
//we take one "step".
//this "step" is stored in a variable named "i"
for (int i = 0; i < matrix.length; i++) //<-- outer loop starts here
{
//initialise an array
//this irray is as long as the number of loops we've made. (as long as "i" is high)
//so the first one will be 0 length, the first will be 1 length, etc.
matrix[i] = new int[i];
//now, we start on the inner loop. keep in mind that we left "i" the same value.
//for every available space in the array we just made, we take one "step"
//this "step" is stored in a variable named "J"
for(int j = 0; j < matrix[i].length; j++) // <-- inner loop starts here
{
//since we don't touch "i", it will be the same for as long as this loop runs.
matrix[i][j] = i;
//since we update "j" in every step of this loop, it will be 1 higher every time this loop runs.
matrix[i][j] = j;
} // <-- inner loop ends here
} // <-- outer loop ends here
答案 2 :(得分:0)
让我们选择一个名为i的简单数组:
i = [a, b, c]
现在让我们为a,b,c:
创建另一个数组a=[ 0, 1, 2 ]
b=[ 0, 1, 2 ]
c=[ 0, 1, 2 ]
基本上,我们有:
row a = 0 1 2
row b = 0 1 2
row c = 0 1 2
(i)的第一个循环(a,b,c)。第二个for,循环在列(0,1,2)
所以,如果你说&#34; row [a] [2]&#34;你必须选择一行,然后选择2(java中的第三列)。