java-不用其他变量实现两变量互换

Posted on 2017-07-20 15:21  Elaine丶  阅读(356)  评论(0编辑  收藏  举报

在java中,对变量进行互换时,将创建一个临时变量来共同完成互换,临时变量的创建增加了系统资源的消耗.如果需要交换的是两个整数类型的变量,则可以使用更高效的方法,使用异或运算符进行互换,而不使用第三变量

^按位异或 双目运算符 运算法则:两个操作数的二进制表示相同时结果为0,否则为1

public class VariableExchange {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入变量A的值");
        long A=scanner.nextLong();
        System.out.println("请输入变量B的值");
        long B=scanner.nextLong();
        System.out.println("A="+A+"\tB="+B);
        System.out.println("执行变量互换-->>");
        A=A^B;
        B=B^A;
        A=A^B;
        System.out.println("A="+A+"\tB="+B);
    }
}

  运行结果如下:

请输入变量A的值
2
请输入变量B的值
5
A=2	B=5
执行变量互换-->>
A=5	B=2