Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我不能正确交换?_Java_Variables - Fatal编程技术网

Java 为什么我不能正确交换?

Java 为什么我不能正确交换?,java,variables,Java,Variables,这里是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);

这里是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



将变量按值传递给方法时,不会影响值,可以将交换代码移动到原始方法:

int i = 1;
int j = 2;
int temp = i; 
i = j;  
j = temp; 
System.out.println("After swapping,i is " +i + ", j is " + j);

或者在使用方法进行交换时使用

在按值传递变量到方法时,如果不影响值,则可以将交换代码移动到原始方法:

int i = 1;
int j = 2;
int temp = i; 
i = j;  
j = temp; 
System.out.println("After swapping,i is " +i + ", j is " + j);

或者在使用方法进行交换时使用

,因为在交换方法中只更改局部变量的值。在Internet上搜索“按值传递”与“按引用传递”。交换的值仅限于交换方法的范围,您必须从数组中的swap方法返回交换的值,或者不使用方法直接交换,因为您只更改交换方法中局部变量的值。在Internet上搜索“按值传递”与“按引用传递”。交换的值仅限于swap方法的范围,您必须从数组中的swap方法返回交换的值,或者不使用方法直接交换