方式一:利用一个中间变量交换数值。
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); } }
运行结果: