A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /*
  2. * 需求:用尽可能多的方法实现两个整数的互换
  3. */
  4. public class ExchangeTest {
  5.         public static void main(String[] args) {
  6.                 int a = 10;
  7.                 int b = 20;

  8.                 //方式1  引入第三方变量(开发中用)
  9.                 int temp = a;
  10.                 a = b;
  11.                 b = temp;
  12.                
  13.                 System.out.println("a:"+a+",b:"+b);
  14.                 System.out.println("-----------------");
  15.                
  16.                 //方式2 a+b和的方式
  17.                 a = a + b; //30
  18.                 b = a - b; //30 - 20 = 10
  19.                 a = a - b; //30 - 10 = 20
  20.                
  21.                 System.out.println("a:"+a+",b:"+b);
  22.                 System.out.println("-----------------");
  23.                
  24.                 //方式3  异或的方式
  25.                 a = a ^ b;
  26.                 b = a ^ b; //a^b^b = a
  27.                 a = a ^ b; //a^b^a = b

  28.                 System.out.println("a:"+a+",b:"+b);
  29.                 System.out.println("-----------------");
  30.                
  31.                 //方式4 一句话搞定加减法
  32.                 b = (a + b) - (a = b);
  33.                
  34.                 System.out.println("a:"+a+",b:"+b);
  35.                 System.out.println("-----------------");
  36.                
  37.                 //方式5 一句话搞定乘除法
  38.                 b = (a*b)/(a=b);
  39.                
  40.                 System.out.println("a:"+a+",b:"+b);
  41.                 System.out.println("-----------------");
  42.                
  43.         }
  44. }
复制代码

2 个回复

倒序浏览
就第一种最常用 其他和没有一样的
回复 使用道具 举报
其实多学一点更好,因为可能会碰到不同的问题,就需要用到这个了,谢谢楼主
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马