交换两个数值的四种方法

方法一:

这种交换方法是最经常使用的一种方式,即引入第三个变量充当交换介质.java

class SwapTwoNums{
	public static void main(String[] args){
		int a = 3;
		int b = 4;
		System.out.println("Numbers before swap: " + "a = " + a +", b = " + b);
		
		int temp = a;
		a = b;
		b = temp;
		System.out.println("Numbers after swap: " + "a = " + a +", b = " + b);
	}
}

方法二

直接赋值,先计算两者之和,而后把a的值赋给b,最后两者之和再减去a的值获得b,最后赋给a.code

class SwapTwoNums{
	public static void main(String[] args){
		int a = 3;
		int b = 4;
		System.out.println("Numbers before swap: " + "a = " + a +", b = " + b);
		
        a = (a + b) - (b = a);
		System.out.println("Numbers after swap: " + "a = " + a +", b = " + b);
	}
}

方法三

另外一种直接赋值方式,实质同方法二.class

class SwapTwoNums{
	public static void main(String[] args){
		int a = 3;
		int b = 4;
		System.out.println("Numbers before swap: " + "a = " + a +", b = " + b);
		
        a = a + b;
		b = a - b;
		a = a - b;
		System.out.println("Numbers after swap: " + "a = " + a +", b = " + b);
	}
}

方法四

利用一个数同另外一个数做两次异或运算,结果等于自己.即a = a ^ b ^ b.变量

class SwapTwoNums{
	public static void main(String[] args){
		int a = 3;
		int b = 4;
		System.out.println("Numbers before swap: " + "a = " + a +", b = " + b);
		
        a = a ^ b;
		b = a ^ b;
		a = a ^ b;
		System.out.println("Numbers after swap: " + "a = " + a +", b = " + b);
	}
}

备注:方法二和三存在上溢的可能,即假若a和b数值均很是大,两者之和可能会超出该类型数所能表达的最大范围.而方法四相对来讲不会有这种问题.方法

相关文章
相关标签/搜索