交换2个数值,不使用第三个变量
来源:互联网 发布:dnn caffe googlenet 编辑:程序博客网 时间:2024/04/29 04:47
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 -> aSystem.out.println("交换之前:value1="+value1+"value2="+value2);value1=value1^value2;value2=value1^value2;//(value1^value2)^value2->value1value1=value1^value2;//(value1^value2)^value1-> value2^value1^value1->value2System.out.println("交换之后:value1="+value1+"value2="+value2);}}