Java小案例——交换两个数值的三种方法

要求:

  互换两个数的值


方法一:借助第三方变量

/**
 * 借助第三方变量对两个值进行互换
 * @author Administration
 *
 */
public class ExchangeValue {

    public static void main(String[] args) {
        int a = 10;
        int b = 15;
        System.out.println("a的值:"+a+",\tb的值:"+b);
        System.out.println("对两个值执行互换操作...");
        int temp = a;
        a=b;
        b=temp;
        System.out.println("a的值:"+a+",\tb的值:"+b);
    }
}

运行结果:

a的值:10,    b的值:15
对两个值执行互换操作...
a的值:15,    b的值:10

方法二:不需要借助第三方变量(加减运算)

/**
 * 不需要借助第三方变量对两个值进行互换
 * @author Administration
 *
 */
public class ExchangeValue {

    public static void main(String[] args) {
        int a = 10;
        int b = 15;
        System.out.println("a的值:"+a+",\tb的值:"+b);
        System.out.println("对两个值执行互换操作...");
        a=a+b;  
        b=a-b;
        a=a-b;
        System.out.println("a的值:"+a+",\tb的值:"+b);
    }
}

运行结果:

a的值:10,    b的值:15
对两个值执行互换操作...
a的值:15,    b的值:10

方法三:不需要借助第三方变量(异或运算)

/**
 * 不需要借助第三方变量对两个值进行互换
 * @author Administration
 *
 */
public class ExchangeValue {

    public static void main(String[] args) {
        int a = 10;
        int b = 15;
        System.out.println("a的值:"+a+",\tb的值:"+b);
        System.out.println("对两个值执行互换操作...");
        a=a^b;
        b=a^b;
        a=a^b;
        System.out.println("a的值:"+a+",\tb的值:"+b);
    }
}

原理:某个数值a与一个数值b进行异或运算得到c,则再用c与b运算可以还原a。因此这个原理可以实现两个数值的交换。

运行结果:

a的值:10,    b的值:15
对两个值执行互换操作...
a的值:15,    b的值:10

 

posted @ 2017-06-03 11:28  沐易笙  阅读(1512)  评论(0编辑  收藏  举报