【发布时间】:2021-06-10 11:41:15
【问题描述】:
考虑这段代码:
import java.util.Arrays;
public class Test {
static int[] getDiagonal(int[][] a) {
int diagonal[] = new int[a.length];
for (int i = 0; i < a.length; i++) {
diagonal[i] = a[i][i];
}
System.out.println(Arrays.toString(diagonal));
return diagonal;
}
public static void main(String[] args) {
int[][] rnd_array = {{1, 2, 4}, {6, 7, 3}, {11, 4, 5}};
getDiagonal(rnd_array);
}
}
此代码的目标是获取具有相同行数和列数的二维矩阵的对角线。代码工作得很好,但我不明白如何。我不清楚的部分是我们如何能够只用一个循环遍历二维数组的行和列。我试过用 2 个 for 循环来做,但我没有得到想要的结果。我如何可视化 2D 数组的遍历,我们怎么可能只用 1 个循环遍历它?
【问题讨论】:
-
你有没有试过在纸上画出你认为数组的每个单元格(你应该看到你用于输入的矩阵)然后单步执行你的代码可能会标记每次迭代中访问的单元格.或者放置一个打印语句,在每次迭代中打印您的
i值。我认为值得记住你是在增加一个计数器而不是数组,并且i只能有值 0,1,2 -
按下调试按钮
-
我建议在 intelliJ 中使用调试器,它非常集成并且非常容易理解发生了什么
标签: java arrays loops multidimensional-array