黑马程序员技术交流社区

标题: 不用第三者交换变量方法这么多! [打印本页]

作者: jiangweibin2573    时间: 2014-8-12 16:00
标题: 不用第三者交换变量方法这么多!
  1. 找找有实现不了的吗
  2. //第1种办法
  3.     public void changeMethodA(int a, int b){
  4.         System.out.println(“changeMethodA交换之前\ta:”+a+”\tb:”+b);
  5.         a = a + b – (b = a);
  6.         System.out.println(“changeMethodA交换之后\ta:”+a+”\tb:”+b);
  7.     }
  8.         //第2种办法
  9.     public void changeMethodB(int a, int b){
  10.         System.out.println(“changeMethodB交换之前\ta:”+a+”\tb:”+b);
  11.         b = a + (a = b)*0;
  12.         System.out.println(“changeMethodB交换之后\ta:”+a+”\tb:”+b);
  13.     }
  14.       //第3种办法
  15.     public void changeMethodC(int a, int b){
  16.         System.out.println(“changeMethodC交换之前\ta:”+a+”\tb:”+b);
  17.         a = a + b;
  18.         b = a – b;
  19.         a = a – b;
  20.         System.out.println(“changeMethodC交换之后\ta:”+a+”\tb:”+b);
  21.     }
  22.      //第4种办法
  23.     public void changeMethodD(int a, int b){
  24.         System.out.println(“changeMethodD交换之前\ta:”+a+”\tb:”+b);
  25.         a = a * b;
  26.         b = a / b;
  27.         a = a / b;
  28.         System.out.println(“changeMethodD交换之后\ta:”+a+”\tb:”+b);
  29.     }
  30.       //第5种办法
  31.     public void changeMethodE(int a, int b){
  32.         System.out.println(“changeMethodE交换之前\ta:”+a+”\tb:”+b);
  33.         a = a^b;
  34.         b = a^b;
  35.         a = a^b;
  36.         System.out.println(“changeMethodE交换之后\ta:”+a+”\tb:”+b);
  37.     }
复制代码


作者: Bule丶    时间: 2014-8-12 16:08
搜噶,一个都不知道
作者: 张小楼    时间: 2014-8-12 16:51
原来只会那个异或的方法,其他几个还真不是很清楚
作者: 狐狸FMF    时间: 2014-8-12 16:56
第二种办法的原理是啥  没看懂
作者: 舍我其谁    时间: 2014-8-12 17:57
第四种方法其中有一个数为0,应该不行吧!
作者: 杨庆雷    时间: 2014-8-12 18:01
又学了几种
作者: jackhai9    时间: 2014-8-12 18:25
学习了。。。




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