交换两个变量的值:
引入第三方变量:
int x=5,y=3;
int temp=0;
temp=x;
x=y;
y=temp;
System.out.println("x="+x+"\t"+"y="+y);
引入第三方变量是很容易解决的!
不引入第三方变量:
方法一:先求和,然后在从和里面减掉一个数,得到另一个数
int a = 3, b = 5;
//获得这两个数之和,保存到两个变量中任何一个当中
a=a+b;
//从两者之和当中,减去一个值,就得到了另一个值
b=a-b; //此时b就是原来a的值:3
a=a-b; //此时a就是原来b的值:5
System.out.println("a="+a+"\t"+"b="+b);
此方法的局限在于,int是有范围的,如果两个数很大,则有可能超出int的范围,从而出错
方法二:使用位运算符:^,利用:一个数异或另一个数两次,得到的是该数本身
int n=5,m=3;
n=n^m; //101^011=110
m=n^m; //110^011=101
n=n^m; //110^101=011,
//注意这里的m已经是之前的n,因此该表达式相当于:n=n^m^n=5^3^5=3
System.out.println("n="+n+"\t"+"m="+m);