黑马程序员技术交流社区

标题: 不借助第三变量,交换两变量的值 [打印本页]

作者: 求学之路    时间: 2015-8-10 10:20
标题: 不借助第三变量,交换两变量的值
                                    int a=12,b=7;
                a=a+b;
                b=a-b;
                a=a-b;
                System.out.println("a="+a+"\tb="+b);
作者: 徐鹏辰    时间: 2015-8-10 13:18
还有一种技巧的方式:异或同一个数
   int a=12,b=7;
                a=a^b;
                b=a^b;//a=(a^b)^b
                a=a^b;//(a^b)^a
                System.out.println("a="+a+"\tb="+b);
作者: 徐鹏辰    时间: 2015-8-10 13:20
楼主的这种方式有局限性,当a和b很大时,a+b的和易超出int的范围。
作者: 芝麻糊    时间: 2015-8-10 16:03
temp = a;
a = b;
b = temp;
不是效率最高的,但绝对是最容易让人理解的,个人还是喜欢这样,看着舒服,作为程序员来说看代码的时间远远超出写代码的时间




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