java - 在将变量传递给函数之前递增变量与在函数内部递增变量有什么区别?
问题描述
我注意到,当我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
解决方案
推荐阅读
- email - SSRS 在不打开 Outlook 的情况下点击发送邮件
- post - laravel 5.5.44 后路由器抛出 302 Found Error
- java - 使用多线程打印字母和数字
- c# - ASP.NET 表单 - 如何将表单数据发送到外部 WCF 服务
- angular - 如何订阅变量更改?
- javascript - 在 v-for 循环中将 textarea 的 v-model 绑定到 Vue.js 中的数组
- java - 为什么 JSTL fmt:formatNumber 根据值类型返回不同的结果?
- c# - 当绑定到“SelectedItem”时,如何让组合框设置 null 值?
- json - 使用带有 Unity IL2CPP 脚本后端的 JsonConvert.SerializeObject 的问题
- objective-c - 使用 @property 定义变量和在目标 c 中实现之间的区别