對於兩種變量的交換,我發現四種方法,下面我用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 }