我正在尝试理解以下 Java 练习。即使运行调试器我也不明白第二个和第三个打印输出的细节:
1, 2, 3, 4
1, 2, 4, 4
1, 2, 4, 8
我知道第一行打印的是数组,第二行打印数组的 [2] 元素,第三行打印 [3] 元素。这是代码:
public class TR1
{
public static void main(String[] args)
{
int[] v = {1, 2, 3, 4 };
print(v);
x(v, v[2] - 1);
print(v);
x(v, v[3] - 1);
print(v);
}
public static void x(int array[], int y)
{
array[y] = array[y - 1] * 2;
}
public static void print(int array[])
{
System.out.print(array[0]);
for (int i = 1; i < array.length; i++)
System.out.print(", " + array[i]);
System.out.println();
}
}
最佳答案
让我们简要介绍一下发生的第一件事。你从这个数组开始:
1 2 3 4
打印时毫不奇怪。
然后你运行:
x(v, v[2] -1 ) ... evaluates to
x(v, 3 - 1) ... evaluates to
x(v, 2)
根据以下内容更改数组:
array[y] = array[y - 1] * 2;
让 y 插入 2(见上文):
array[2] = array[1] * 2;
array[2] = 2 * 2;
导致:
1, 2, 4, 4
所以,真正的答案是:您甚至不需要调试器。一张纸、一支笔、一点思考,更能有效揭开这里的“ secret ”。
关于java - 打印出 java 练习解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43982169/