晚上好。我正在审查Java考试的介绍,导师写了一个我似乎错过了一些问题。
考虑:
int[][] mat = new int[3][4];
for (int row = 0; row < mat.length; row++)
{
for(int col = 0; col < mat[0].length; col++)
{
if (row < col)
mat[row][col] = 1;
else if (row == col)
mat[row][col] = 2;
else
mat[row][col] = 3;
}
}
代码段执行后mat的内容是什么?
答案的选择我不打算专门列出,因为我不需要特定的答案。我需要了解发生什么假设。我插入一个IDE,如果我添加一个System.out.print(mat),我会得到一个胡言乱语的答案;
“[[I @ 139a55”
虽然教师期望在3x4或4x3阵列中选择整数。没有整数超过3.
对此有任何启发对于帮助我理解for循环和要完成的数组之间的关系是非常宝贵的。
答案 0 :(得分:0)
Java数组类型没有提供toString()
方法的特定实现来打印其内容。您所看到的是JVM中引用本身的表示,但它对您的目的而言毫无意义。
我建议您尝试使用
for (int i = 0; i < mat.length; ++i)
System.out.println(Arrays.toString(mat[i]));
使用Arrays.toString
方法,以人类可读的方式打印数组(基本上通过在每个元素上调用toString
)