标签:java 不引入变量交换两个数 源代码 两数交换 引入一个中间变量
一、描述
在不引入其它变量的情况下交换两个数,引入一个变量做中介,交换两个数的值。
二、源代码
<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(引入一个中间变量,不引入中间变量)交换两个变量的值
标签:java 不引入变量交换两个数 源代码 两数交换 引入一个中间变量
原文地址:http://blog.csdn.net/tongyuehong137/article/details/45117979