Java int a = 1 int b = 2 將兩個變量的值進行互換的三種方法

以此爲例:

int a = 1;
int b = 2;

如何將兩個變量的值進行互換?

方法一:採用一箇中間變量空間

int c = a;
a = b;
b = c;
  • 好處是比較容易理解,值也不會出問題;並且應用最廣泛,可以交換任意兩個變量值(不僅僅是數值)
  • 不好在於產生一個新的內存空間

方式二:使用算數運算符(+ -)

a = a + b; //a空間存儲的是兩個元素之和 a==3     b沒有變化  b==2
b = a - b; //利用兩個元素的和減原來的b,剩下是原來的a ,賦值給b   b==1   a==3
a = a - b; //利用a空間兩個元素的和,減去原來的a,剩下是原來的b,賦值給a  a==2  b==1
  • 好處是省略了一個新的空間
  • 不好在於 1.相對第一個來講不是很容易理解 2.可能會在+產生值越界

方式三:使用位運算符(^)

a = a^b; //a==異或中間值   b==2
b = a^b; //a==異或中間值   b==1
a = a^b; //a==2     b==1

一個數字 異或 同一個數字兩次,值不會改變
看一個例子:

1^2

001
010
011 == 3

3^2

011
010
001 == 1

很明顯:

1^2^2 == 1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章