-2

我有这个代码:

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}

4

2 回答 2

4

在 return 语句之后不再执行代码

这是正确的。但++is 不在return 语句之后,它是它的一部分

您的代码相当于:

int temp = array[0];
array[0] = temp + 1;
return temp;
于 2018-06-12T09:45:56.637 回答
0

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

于 2018-06-12T09:53:36.327 回答