//使用三種方法去交換兩個變量的數值
public class ExchangeTwoVariable {
public static void main(String[] args) {
//方法一(簡單):
/* int a = 1,b = 2;
int temp;
System.out.println("交換前:a = " + a + " b = " + b);
temp = a;
a = b;
b = temp;
System.out.println("交換後:a = " + a + " b = " + b);*/
//方法二(簡單):
/*int a = 3,b = 4;
System.out.println("交換前:a = " + a + " b = " + b);
a = a + b;
b = a - b;
a = a - b;
System.out.println("交換後:a = " + a + " b = " + b);*/
//方法三:
//Tips:一個數異或同一個數兩次,結果還是那個數。
int a = 5,b = 6;
System.out.println("交換前:a = " + a + " b = " + b);
a = a ^ b;//(1)經過運算,等式左邊的a變成了一箇中間數tmp(或者叫做臨時數),此時b的數值沒有發生變化,還是6。
//從第一步開始,a就是“一個數”,b就是“同一個數”。
b = a ^ b;//(2)因爲一個數異或同一個數兩次,結果還是那個數。此時a就是“一個數”,b就是“同一個數”。
//所以此時a^b就得到了原來的a,即5,但是我們的需求是要交換a,b的數值,
//所以將得到的運算結果賦值給b,從而達到交換數據的目的,所以此時等式左邊的b等於5。
//從第二步開始,b就是“一個數”,a就是“同一個數”。
a = a ^ b;//(3)在第二步中,等式右邊的b等於6。
//因爲一個數異或同一個數兩次,結果還是那個數,此時b就是“一個數”,a就是“同一個數”。
//這樣通過兩次異或,我們又可以得到6,從而將其賦值給a。
//所以在第三步中等式右邊a^b就得到了原來的b,即6,,但是我們的需求是要交換a,b的數值,
//所以將得到的運算結果賦值給a,從而達到交換數據的目的,所以此時等式左邊的a等於6。
System.out.println("交換後:a = " + a + " b = " + b);
}
}
(基礎三)交換兩個變量值的三種方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.