两个数值型变量交换值的方法总结
方式一:
可读性强,适用于全部变量,但是会申请一个空闲的空间在大体量的程序中会造成空间大量的浪费。
public class Test{ public static void main(String[] args){ int a=1; int b=2; int c=a; a=b;//a=2 b=c;//b=1 } }
方式二:
不用申请另外的空间,有局限性:只适用于数值型变量、对于较大的两个数值的和可能会超过上下限。
public class Test{ public static void main(String[] args){ int a=1; int b=2; a=a+b; b=a-b;//b=1 a=a-b;//a=2 } }
方式三:
不用申请另外的空间,可读性差,有局限性:只适用于数值型变量。
public class Test{ public static void main(String[] args){ int a=1; int b=2; a=a^b;//a先用来储存a和b异或运算的中间值 b=a^b;//b=1 a=a^b;//a=2 } }
一个数连续和相同的两个数进行异或(^)运算,还是其本身。