两个变量交换的四种方法(Java)

对于两种变量的交换,我发现四种方法,下面我用Java来演示一下。

1.利用第三个变量交换数值,简单的方法。

(代码演示一下)

 1 class TestEV
 2 //创建一个类
 3 {
 4     public static void main(String[]args)
 5     {
 6         int x =5,y=10; //定义两个变量
 7          
 8         int temp = x;    //定义第三临时变量temp并提取x值
 9         x = y;        //把y的值赋给x
10         y = temp;      //然后把临时变量temp值赋给y
11         
12         System.out.println("x="+x+"y="+y);
13         
14     }
15     
16 }
17         

 

 

  2.可以用两个数求和然后相减的方式进行数据交换,弊端在于如果 x 和 y 的数值过大的话,超出 int 的值会损失精度。

(代码演示一下)

 1 class TestEV
 2 //创建一个类
 3 {
 4     public static void main(String[]args)
 5     {
 6         int x =5,y=10; //定义两个变量
 7         
 8         x = x + y;        //x(15) = 5 + 10;
 9         y = x - y;        //y(5) = x(15) - 10;        
10         x = x - y;        //x(10) = x(15) - y(5)
11         System.out.println("x="+x+"y="+y);
12         
13     }
14     
15 }             

 

 

 

 

3.利用位运算的方式进行数据的交换,利用的思想原理是:一个数异或同一个数两次,结果还是那个数,而且不会超出int范围

(代码演示一下)

 1 class TestEV
 2 //创建一个类
 3 {
 4     public static void main(String[]args)
 5     {
 6         int x =5,y=10; //定义两个变量
 7         
 8                 x = x^y;
 9         y = x^y;  //y=(x^y)^y
10         x = x^y;  //x=(x^y)^x
11         System.out.println("x="+x+"y="+y);
12         
13     }
14     
15 }                   

 

 

  

4.最为简单的,在打印输出的时候直接交换变量

(代码演示一下)

 1 class TestEV
 2 //创建一个类
 3 {
 4     public static void main(String[]args)
 5     {
 6         int x =5,y=10; //定义两个变量
 7         
 8         System.out.println("x="+y+"y="+x); //直接在输出的时候交换
 9         
10     }
11     
12 }      

 

 

  

 

 

 
 
posted @ 2016-08-25 20:43  BradLee  阅读(52270)  评论(11编辑  收藏