所以我现在在学习Java nad,现在在多维数组上。我想我了解他们的工作方式。我发现了如何用for写出来的,但是问题是for发生了什么,为什么我们需要两个for。这是代码:
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
for (int i = 0; i < myNumbers.length; i++) {
for (int j = 0; j < myNumbers[i].length; j++) {
System.out.println(myNumbers[i][j]);
}
}
答案 0 :(得分:1)
我建议您通过以下方式更改 i 和 j 变量名:
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
for (int row = 0; row < myNumbers.length; row++) {
for (int column = 0; column < myNumbers[row].length; column++) {
System.out.println(myNumbers[row][column]);
}
}
当您使用2d数组时,首先要有一个代表行的数组,每行将有另一个数组代表当前行的列。
给出您的示例,它看起来像这样:
myNumbers[0] is the row 0 of your 2d array, its value is an array => [1, 2, 3, 4]
myNumbers[1] is the row 1 of your 2d array, its value is an array => [5, 6, 7]
在第一个 for 中的遍历行,而在第二个 for 中,您遍历该行的列。
myNumber[0][1] is the value for the row 0 and column 1, that is 2
myNumber[1][0] is the value for the row 1 and column 0, that is 5
输出将是:
myNumber[0][0] => 1
myNumber[0][1] => 2
myNumber[0][2] => 3
myNumber[0][3] => 4
myNumber[1][0] => 5
myNumber[1][1] => 6
myNumber[1][2] => 7
我希望这会有所帮助。
答案 1 :(得分:0)
第一个for循环将选择两个数组之一,第二个for循环遍历数组内容。
第一个数组= {1,2,3,4}
第二个数组= {5,6,7}
答案 2 :(得分:0)
与其分别尝试使用i
和j
而不是使用row
和col
,这应该可以帮助您了解两个for循环对行和行进行迭代的必要性。二维数组myNumbers
的单独列:
class Main {
public static void main(String[] args) {
int[][] myNumbers = {{1, 2, 3, 4},
{5, 6, 7}};
for (int row = 0; row < myNumbers.length; row++) {
for (int col = 0; col < myNumbers[row].length; col++) {
System.out.println(String.format("myNumbers[%d][%d] = %d", row, col, myNumbers[row][col]));
}
}
}
}
输出:
myNumbers[0][0] = 1
myNumbers[0][1] = 2
myNumbers[0][2] = 3
myNumbers[0][3] = 4
myNumbers[1][0] = 5
myNumbers[1][1] = 6
myNumbers[1][2] = 7