1. 程式人生 > >兩個變數交換的四種方法(Java)

兩個變數交換的四種方法(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 }