首页 > 解决方案 > 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}

标签: javareturnincrementorder-of-execution

解决方案


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

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

您的代码相当于:

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

推荐阅读