首页 > 解决方案 > 在将变量传递给函数之前递增变量与在函数内部递增变量有什么区别?

问题描述

我注意到,当我evenNumberIndex在将它传递给swap函数之前递增时,我得到的值与我在函数中递增它时不同。为什么是这样?

public static void main(String[] args) {
      int[] example = {3, 1, 2, 4};

      sortArrayByParity(example);
}
    
public static int[] sortArrayByParity(int[] A) {

     // Keep track of even numbers
     int evenNumberIndex = 0;
        
     // Loop through entire array
     for (int i = 0; i < A.length; i++) {
        // Check for even numbers
        if (A[i] % 2 == 0) {
           swap(A, evenNumberIndex++, i);
        }
     }
        
     return A;
}
    
    
public static void swap(int[] nums, int index1, int index2) {

    System.out.println(index1);
    System.out.println(index2);
    int temp = nums[index1];
    nums[index1] = nums[index2];
    nums[index2] = temp;
}

evenNumberIndex在函数之前递增时的值:1、2

evenNumberIndex函数内部递增时的值:0、1

标签: java

解决方案


推荐阅读