下面给出了一个代码,我需要找到输出。显然,我编译了代码,发现输出为1 2 3 4 5 6 7 但我不明白为什么。
public class ArrayTest {
public static void main(String[] args) {
int[] numbers = {1,2,3,4,5};
for (int k=0;k<numbers.length;k++)
System.out.print(numbers[k]+" ");
doSomething(numbers,2);
for (int k=0;k<numbers.length;k++)
System.out.print(numbers[k]+" ");
}
public static void doSomething(int[] n, int i){
for (int j=0; j<n.length;j++)
n[j] += i;
}
}
有人想为我分解代码吗?
答案 0 :(得分:5)
输出实际上是1 2 3 4 5 3 4 5 6 7
。
doSomething(int[], int)
只需将i
添加到数组n
中的每个元素。
第一个for循环将打印数组中的所有数字(“1,2,3,4,5”),然后对doSomething
的调用将为数组中的每个数字添加2。因此,在以下for循环中打印时,您的新数组为3, 4, 5, 6, 7
。
答案 1 :(得分:1)
尝试添加新行System.out.print("\n");
,如下所示:
for (int k=0;k<numbers.length;k++)
System.out.print(numbers[k]+" ");
System.out.print("\n");
doSomething(numbers,2);
你将有输出:
first for loop gives: 1 2 3 4 5
second for loop gives: 3 4 5 6 7
答案 2 :(得分:0)
我认为你的输出是错误的。
第一个for
循环打印出1 2 3 4 5
第二个for
循环打印出3 4 5 6 7
它只是为数组中的每个数字加上2:)