这个题目有三种解法。
1这个题目,我们解决的思路是 搞一个中间变量 来临时存储一个变量的值;
我们这里给下参考代码:
1
2
3
4
5
6
7
8
9
10
11
|
public
class
Test {
public
static
void
main(String[] args) {
int
a=
3
,b=
5
;
int
c;
c=a;
a=b;
b=c;
System.out.println(
"a="
+a+
",b="
+b);
}
}
|
运行输出:
a=5,b=3
2 可以使用自加自减方法
public class Zip {
public static void main(String[] args) {
int a = 3, b = 5;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a:" + a + "\n" + "b:" + b);
}
}
3 可以用运算符
public class Zip {
public static void main(String[] args) {
int a = 2, b = 6;
a = a ^ b;
b = b ^ a;
a = a ^ b;
System.out.println("a:" + a + "\n" + "b:" + b);
}
}
分析:
前两个赋值语句:“a = a ^ b;”和“b = b ^ a;”相当于b = b ^ (a ^ b),而b ^ a ^ b等于a ^ b ^ b。b ^ b的结果为0,因为同一个数与相向相^,结果必为0。因此b的值等于a ^ 0,即a,其值为2。
再执行第三个赋值语句:“a = a ^ b”。由于a的值等于(a ^ b),b的值等于(b ^ a ^ b),因此,相当于a = a ^ b ^ b ^ a ^ b,即a的值等于a ^ a ^ b ^ b ^ b,等于b。