交换两个数是编程的基础,以下是常见的三种方式解决这个问题:

    
    public void change1(int a,int b)
    {
        System.out.println("a= "+a+" b= "+b);
        int temp=a;
        a=b;
        b=temp;
        System.out.println("a= "+a+" b= "+b);
    }
    

这种方式是每一个学习编程的人都应该会的,不多说。

 

public void change2(int a,int b)
    {
        System.out.println("a= "+a+" b= "+b);
        a=a+b;
        b=a-b;
        a=a-b;
        System.out.println("a= "+a+" b= "+b);
    }

这个方法没有用的临时变量,采用了一个简单的技巧来解决这个问题,不过这中方法有一个小的缺陷:如果a和b特别大的话,可能出现溢出的情况,有一定的局限性。

 

1 public void change3(int a,int b)
2     {
3         System.out.println("a= "+a+" b= "+b);
4         a=a^b;
5         b=a^b;
6         a=a^b;
7         System.out.println("a= "+a+" b= "+b);
8     }

 上面这种方法采取了异或的方式来解决,基本的原理是一个数如果和同一个数异或两次仍然是这个数本身。