我是Java的新手。我一直在进行此练习,遇到了一个我想找出的有趣问题。
我对它如何打印2,4,4和2,4,8感到困惑。我知道1和2,3,4的工作原理。
这是打印结果。
1 ,2 ,3 ,4
1 ,2 ,4 ,4
1 ,2 ,4 ,8
我尝试通过打印来检查array [idx]的工作方式(不在代码btw中),并且我知道在第一个循环中,array [idx]将为4,因为index [2]为3、3- 1 = 2,2 * 2 =4。
但是,我对第二个循环感到困惑,其中array [idx]为8。我认为index [3]为4,4-1 = 3,3 * 2 = 6?
这是代码。
public static void main (String[] args){
int[] v = {1,2,3,4};
print(v);
fiddle(v, v[2]-1);
print(v);
fiddle(v, v[3]-1);
print(v);
}
public static void fiddle(int[] array, int idx) {
array[idx] = array[idx - 1] * 2;
}
public static void print(int[] array) {
System.out.println(array[0]);
for (int i = 1; i < array.length; i++){
System.out.println(", " + array[i]);
}
System.out.println();
}
我只想知道小提琴和打印方法如何一起工作以获得2、4、4和2、4、8的结果。
答案 0 :(得分:2)
原因是因为对fiddle方法的每次使用都从数组的先前状态开始。在调用小提琴之前,您并没有将阵列重置为其原始状态。
因此,在您进行第三次提琴演奏时,它使用[1,2,4,4],其中第三索引-1 = 4 * 2,即8
正如其他人在评论中说的那样,调试它可以为您节省一个问题。但是,由于您不熟悉Java,因此您可能还不知道这是可以的。我建议您学习如何在使用的任何IDE中使用调试器。