Java不借助第三方变量交换两个变量的值

这种方式有个隐患,如果两个数相加超过了类型的上限,会影响精度,导致结果不准确;

public class Test {

    public static void main(String[] args) {
        int i=1;
        int j=3;
        i=i+j;
        j=i-j;
        i=i-j;
        System.out.println(i+","+j);
    }
    
}

使用位^运算符就不会出现上面的情况

public class Test001 {

    public static void main(String[] args) {
        int i=1;
        int j=3;
        i=i^j;
        j=i^j;
        i=i^j;
        System.out.println(i+","+j);
    }
    
}

猜你喜欢

转载自www.cnblogs.com/wjsffzb/p/9547440.html