java编程实现两个数字的交换

来源:互联网 发布:硅谷办公室装修 知乎 编辑:程序博客网 时间:2024/05/19 13:17

这个题目有三种解法。

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。




1 0
原创粉丝点击