码迷,mamicode.com
首页 > 编程语言 > 详细

java(引入一个中间变量,不引入中间变量)交换两个变量的值

时间:2015-04-18 23:47:24      阅读:242      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!