如果觉得这篇文章对您有帮助,记得关注我哟!
方法一:
通过一个中间变量来实现数据之间的交换
int a = 1,b = 10;
int temp = a; // 将a的值先赋值给中间变量temp
a = b; //然后把b的值赋值给a
b = temp; //最后再把temp中存的a的值赋值给b
System.out.println(a+" "+b);
这种交换过程就像一个圆环,圆环上有三个值,顺时针或逆时针的将值赋给前(后)的变量。从而实现数据的交换,许多排序方法也是通过中间变量来达到小的数值放前面,大的数值放后面。
方法二:
不使用中间变量,通过加减运算符实现两个变量之间的数据交换。
int a = 10, b = 20;
a = a+b; //此时的a=30;
b = a-b; //b=30-20=10,a=30不变
a = a-b; //a=30-10=20,a改变
System.out.println(a+" "+b);
方法三:
不使用中间变量,通过位运算符实现两个变量之间的数据交换。
int a = 11, b = 14; //二进制:a=8 —— 1011,b=14 —— 1110
a = a^b; // a^b,异或运算,只有对应位数的值相等时才能返回1,否则返回0
// 所以a=a^b=1011^1110=1010;
b = a^b; // b=a^b=1010^1110=1011,即b=原本a的值
a = a^b; // a=a^b=1010^1011=1110,即a=原本b的值
System.out.println(a+" "+b);
网友评论