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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章