为什么我不能正确交换?

时间:2019-04-11 06:23:55

标签: 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);
    }

public static void swap(int n1, int n2) {
    int temp = n1;  //temp =1
     n1 = n2;  //n1 = 2
     n2= temp; //n2 = 1


1 个答案:

答案 0 :(得分:0)

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

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

或在使用方法交换时使用several answers in this question