黑马程序员技术交流社区

标题: 两个变量交换值,不用第三个变量? [打印本页]

作者: King_L    时间: 2014-9-20 09:59
标题: 两个变量交换值,不用第三个变量?
本帖最后由 King_L 于 2014-9-23 15:45 编辑

除了x+y,x*y.还有别的办法么?
作者: bayshier    时间: 2014-9-20 10:03
?好奇怪的问题 ,求解答
作者: 孤鸢    时间: 2014-9-20 10:09
还有异或,视频里好像说了哦
作者: 杨佳名    时间: 2014-9-20 10:11
本帖最后由 杨佳名 于 2014-9-20 10:13 编辑

        public void changeMethod_1(int a, int b){
                System.out.println("changeMethod_1交换之前\ta:"+a+"\tb:"+b);
                a = a + b - (b = a);
                System.out.println("changeMethod_1交换之后\ta:"+a+"\tb:"+b);
        }

        public void changeMethod_2(int a, int b){
                System.out.println("changeMethod_2交换之前\ta:"+a+"\tb:"+b);
                b = a + (a = b)*0;
                System.out.println("changeMethod_2交换之后\ta:"+a+"\tb:"+b);
        }

        public void changeMethod_3(int a, int b){
                System.out.println("changeMethod_3交换之前\ta:"+a+"\tb:"+b);
                a = a + b;
                b = a - b;
                a = a - b;
                System.out.println("changeMethod_3交换之后\ta:"+a+"\tb:"+b);
        }

        public void changeMethod_4(int a, int b){
                System.out.println("changeMethod_4交换之前\ta:"+a+"\tb:"+b);
                a = a * b;
                b = a / b;
                a = a / b;
                System.out.println("changeMethod_4交换之后\ta:"+a+"\tb:"+b);
        }

        public void changeMethod_5(int a, int b){
                System.out.println("changeMethod_5交换之前\ta:"+a+"\tb:"+b);
                a = a^b;
                b = a^b;
                a = a^b;
                System.out.println("changeMethod_5交换之后\ta:"+a+"\tb:"+b);
        }

作者: jtshawn    时间: 2014-9-20 10:41
楼上好全啊,赞一个
作者: xpaibeyond    时间: 2014-9-20 11:34
    3楼的很详细,  赞一个。。
作者: King_L    时间: 2014-9-22 14:56
杨佳名 发表于 2014-9-20 10:11
public void changeMethod_1(int a, int b){                System.out.println("changeMethod_1 ...

加减方法的话,有没有想过溢出这种状况,乘除的话,有没有想过乘除数为0的情况呢?
作者: hf79135    时间: 2014-9-22 20:41
二楼在本质上不还是交换了么
作者: 潘杰    时间: 2014-9-22 20:51
用^也可以,一个数^另一个数两次得到的还是他本身
作者: cat73    时间: 2014-9-22 21:40
老老实实用临时变量最好
这种看起来貌似很爽的方法最好少用




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