【发布时间】:2019-04-11 06:23:54
【问题描述】:
这里是 Java 初学者。 我可以说 int i 被传递到 int n1,int j 被传递到 int n2 吗? 但我的输出是 交换后,i为1,j为2 为什么我的变量不能交换? 编辑1:看了其他帖子,有人说没有原始数据的交换方法吗?那为什么我的导师为了混淆而创建了这种交换方法?
int i = 1;
int j = 2;
swap(i,j);
System.out.println("After swapping,i is " +i + ", j is " + j);
}
public static void swap(int n1, int n2) {
int temp = n1; //temp =1
n1 = n2; //n1 = 2
n2= temp; //n2 = 1
【问题讨论】:
-
因为你只改变了交换方法中局部变量的值
-
在 Internet 上搜索“按值传递”与“按引用传递”。
-
交换的值仅限于交换方法的范围,你必须要么从数组中的交换方法返回交换的值,要么不使用方法直接交换