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);
}
}