黑马程序员技术交流社区

标题: 两个变量,不定义第三个临时变量,怎么互换啊 [打印本页]

作者: Monster    时间: 2015-6-6 08:21
标题: 两个变量,不定义第三个临时变量,怎么互换啊
比如int i1 = 1;
       int i2 =2;
不要第三个临时变量,怎么得到 int i1 = 2;int i2 = 1;



如果是String呢?

作者: pizhihui    时间: 2015-6-6 09:04

哦哦,还有个方法需要用到异或的知识。就是一个数被另一个数异或两次其值不变。举个例子就是:a^b^b=a。然后根据这个理论就可以交换两个数的值了。下面是具体的代码
class Demo{
public static void main(String[] args){
   
   int a = 10,b = 20;
   a = a ^ b;
   b = a ^ b;//相当于b=a^b^b  即b=a;
   a = a ^ b;//相当于a=a^b^a  即a=b;
   System.out.println("a=" + a +"b=" + b);
}
}

作者: 流水0215    时间: 2015-6-6 09:12
使用异或就可以,楼上解释的已经比较清楚了
作者: 夏尔    时间: 2015-6-6 10:18
i1=i1+i2
i2=i1-i2
i1=i1-i2
作者: 乌鸦小生    时间: 2015-6-6 21:38
异或,原理都一样的





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2