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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© iamzk 中级黑马   /  2015-8-15 17:20  /  303 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 iamzk 于 2015-8-15 17:24 编辑

以下是我总结的交换两个变量的各种方式
  1. class ExchangeTest
  2. {
  3.         public static void main(String []args)
  4.         {
  5.                 int a = 4,b = 5;
  6.                 System.out.println("原始:a=" + a + ",b=" + b);
  7.                 //使用临时变量,无限制
  8.                 int temp = a;
  9.                 a = b;
  10.                 b = temp;
  11.                 System.out.println("交换:a=" + a + ",b=" + b);
  12.                 //使用加法,可能会溢出
  13.                 a = a + b;
  14.                 b = a - b;
  15.                 a = a - b;
  16.                 System.out.println("交换:a=" + a + ",b=" + b);
  17.                 //使用乘法,可能会溢出,且a,b不能为0
  18.                 a = a * b;
  19.                 b = a / b;
  20.                 a = a / b;
  21.                 System.out.println("交换:a=" + a + ",b=" + b);
  22.                 //使用异或,只能用于整形,且两个数不能相同
  23.                 a = a ^ b;
  24.                 b = a ^ b;
  25.                 a = a ^ b;
  26.                 System.out.println("交换:a=" + a + ",b=" + b);
  27.                 //使用表达式,无限制
  28.                 a = a + b - (b = a);
  29.                 System.out.println("交换:a=" + a + ",b=" + b);
  30.                 //使用表达式,无限制
  31.                 a = b + (b = a)*0;
  32.                 System.out.println("交换:a=" + a + ",b=" + b);
  33.         }
  34. }
复制代码


欢迎大家继续补充,并帮忙指出其中的错误,谢谢!







2 个回复

倒序浏览
总结的很好
回复 使用道具 举报

恩,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马