Java 在返回对象引用后执行增量操作



我有这段代码:

public class counter {
public static void main(String[] args){
double[] array = new double[10];
for(int i=0;i<array.length;i++) array[i] = i;
printArray(array);
double result = doSomething(array);
printArray(array);
}
public static void printArray(double[] arr){
for(double d : arr) System.out.println(d);
}
public static double doSomething(double[] array){
return array[0]++;
}
}

我了解到,在 return 语句之后不再执行代码,并且 increment++ 在下一个表达式中递增值。因此,在我看来,数组array[0]的第一个元素不应该递增似乎是合乎逻辑的。

但是输出数组是 {1,1,2,3,4,5,6,7,8,9}

在返回语句之后不再执行代码

没错。但++不是在返回语句之后,而是它的一部分

您的代码等效于:

int temp = array[0];
array[0] = temp + 1;
return temp;

数组 [0]++ 包含在 return 语句中。 因此,递增的值存储在数组 [0] 中(即数组 [0] = 1( 不要混淆自己认为增量将在返回语句之后,因为它是递增后

最新更新