Java SE(21) 拓展:两个数交换的四种方式

方式一:利用一个中间变量交换数值。

public class JiaoHuan1{
	public static void main(String[] args){
		int a=5,b=10;    //定义两个变量
		System.out.println("交换前:"+a+"\t"+b);
		
		int t;   //引入一个中间变量
		//交换变量
		t=a;
		a=b;
		b=t;
	
		System.out.println("交换后:"+a+"\t"+b);
	}
}

 运行结果:

  

方式二:利用两个数求和然后相减的方式进行数据交换,弊端在于如果 x 和 y 的数值过大的话,超出 int 的值会损失精度。

public class JiaoHuan2{
	public static void main(String[] args){
		int a=5,b=10;    //定义两个变量
		System.out.println("交换前:"+a+"\t"+b);
		
        //交换变量
		a=a+b;  //a=5+10=15
		b=a-b;  //b=15-10=5
		a=a-b;  //a=15-5=10
	
		System.out.println("交换后:"+a+"\t"+b);
	}
}

 运行结果:

 

方式三:利用位运算的方式进行数据的交换,利用的思想原理是:一个数异或同一个数两次,结果还是那个数,而且不会超出int范围。

public class JiaoHuan3{
	public static void main(String[] args){
		int a=5,b=10;    //定义两个变量
		System.out.println("交换前:"+a+"\t"+b);
		
		//交换变量
		a=a^b;  
		b=a^b;  //b=(a^b)^b
		a=a^b;  //a=(a^b)^a
	
		System.out.println("交换后:"+a+"\t"+b);
	}
}

运行结果:

方式四:在打印输出的时候直接交换变量

public class JiaoHuan4{
	public static void main(String[] args){
		int a=5,b=10;    //定义两个变量
		System.out.println("交换前:"+a+"\t"+b);
	
		System.out.println("交换后:"+b+"\t"+a);
	}
}

运行结果:

猜你喜欢

转载自blog.csdn.net/wqh101121/article/details/112544201