黑马程序员技术交流社区

标题: 新手:交换两个数的放发 [打印本页]

作者: 唤月    时间: 2014-5-21 20:06
标题: 新手:交换两个数的放发
1.通过第三方变量。
例如:
      int  a=3,b=5;  //交换两个数的值
      //实现过程
      int temp;
      temp=a;
      a=b;
      b=temp;

2.不通第三方变量
例如:
      int  a=3,b=5;  //交换两个数的值
      //实现过程
      a=a+b;

      b=a-b;
      a=a-b;

作者: 唤月    时间: 2014-5-21 20:19
补充:
第二种方法的局限性在于:当a与b的值超大时容易超出int型的最大值。。。。。

3.通过位移运算符^
例如:
      int  a=3,b=5;  //交换两个数的值
      //实现过程
      a=a^b;

      b=a^b; //(a^b)^b=a
      a=a^b;//(a^b)^a=b
总结:一个数异或同一个数两次,结果等于他本身。。。。


在快发过程中适合用第一种方法,阅读性好,容易理解。。。。
作者: 沉默的爱    时间: 2014-5-21 21:59
你这是提问帖,,你的问题是什么呢??
作者: 唤月    时间: 2014-5-21 22:22
对于黑马的发帖机制,真心觉得难搞??????看不懂?????
作者: love~陌    时间: 2014-5-22 16:31
哎,又发现了一个传智播客 Java预热班512期的一名学员~今天放假,小哥没去自习么
作者: 小思883    时间: 2014-5-22 18:45
int a,temp,min;
a=10;
temp=0;
min=1;
  temp=a;
         a=min;
          min=temp;




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