交换2个数值,不使用第三个变量

package com.yihuo;

public class Jhuan {//交换这两数值的值
	//如: value1=12;    value2=20     ->      value1=20;    value2=12  
	public static void main(String[] args) {		
		
		int value1=12,value2=20;
		/*
		//使用第三个数据,也是经常想到的  十几开发过程应该是使用这个方式
		int temp;//定义一个临时的变量用于存放
		temp=value1;
		value1=value2;
		value2=temp;
		*/
		/
		//这个方法貌似不常用,不够直观  不够看到了就记下吧!说不定以后就会被问到
		//不实用第三个变量
		/*
		System.out.println("交换之前:value1="+value1+"	value2="+value2);
		value1=value1+value2;//存在损失精度的可能性    超出表达范围
		value2=value1-value2;
		value1=value1-value2;
		System.out.println("交换之后:value1="+value1+"	value2="+value2);
		*/
		
		//我去,这种方法更帅了 !!这个是在黑马程序里面看到的!
		//原理 :  a^b^b  ->  a^(b^b)->  a^0  -> a
		System.out.println("交换之前:value1="+value1+"	value2="+value2);
		value1=value1^value2;
		value2=value1^value2;//(value1^value2)^value2->value1
		value1=value1^value2;//(value1^value2)^value1->  value2^value1^value1->value2
		System.out.println("交换之后:value1="+value1+"	value2="+value2);

	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值