Java array[][] 正在锻炼

Java array[][] working out

我希望有人能帮助我,几周后我要考试,我在练习一些过去的试卷时遇到了这个问题。

int[][] x = { { 1, 6 }, { 7, 3 }, { 7, 6 } };
double b = x[x[0][0]][1];

问题求答案b会出,我在eclipse上模拟过,给出答案3.0。但是,我真的不确定如何得到这个答案?如果有人能给我解释一下,我将不胜感激!

x[x[0][0]][1];为x**[x[0][0]]****[1 ]**; 其中 x[0][0] 是 1 所以,x[x[0][0]][1]将是 x[1][1] = 3.0 因为它是双倍的。

让我们把它分解成几个部分:

初始:

int[][] x = { { 1, 6 }, { 7, 3 }, { 7, 6 } };
double b = x[x[0][0]][1];
  • x[x[0][0]][1]中的内x[0]{ 1, 6 }
  • x[x[0][0]][1]中的内x[0][0]因此是1
  • 所以现在我们有 x[1][1]
  • x[1]{ 7, 3 }
  • 因此 x[1][1]3

结论:x[x[0][0]][1] =3


编辑:此外,b 是一个双精度数,因此它隐式地将 int 3 转换为双精度数,这使得结果变为 b = 3.0

Java Language Specifications 中,您可以在 Java.

中找到有关隐式转换、扩大转换、精度损失等工作原理的更多信息

这样看问题

x[0][0] 值为 1.0

所以问题简化为x[1][1] = 3.0

[1 ,6]

[7, 3]

[7, 6]

记住 Java 二维数组是 [y][x]