一、描述
在不引入其它变量的情况下交换两个数,引入一个变量做中介,交换两个数的值。
二、源代码
<span style="font-size:18px;">package tong.yue.sort; public class SwapTwoValues { /** * @param args */ public static void main(String[] args) { int a = 10,b = 20; swapByExtraVariable(a,b); swapBySelf(a,b); //这里采用值传递,只是复制一个a,b的副本去参加函数的运算,并不影响main函数中原来的a和b的值 System.out.println("main function: a="+a+",b="+b); } private static void swapBySelf(int a, int b) { // 在不引入其它变量的情况下交换两个数,利用两数之和来做 a = a+b; //a保存两数之和 b = a-b; //两数之和-b,即为a a = a-b; //两数之和-b,此时的b已经变成了a,所以相当于sum-a=b System.out.println("swapBySelf first function:a="+a+",b="+b); //还有另一种方法,利用两数之差,即两数之间的距离 a = b-a; //a=两者的差 b = b-a; //b = 原来的b-两数的距离==原来的a a = a+b; //最终的a=两者之差+原来的a==原来的b System.out.println("swapBySelf second function:a="+a+",b="+b);//又换回来了 } private static void swapByExtraVariable(int a, int b) { // 引入一个变量做中介,交换两个数 int temp = a; a = b; b = temp; System.out.println("swapByExtraVariable function:a="+a+",b="+b); } } </span>
java(引入一个中间变量,不引入中间变量)交换两个变量的值
原文:http://blog.csdn.net/tongyuehong137/article/details/45117979