本帖最后由 iamzk 于 2015-8-15 17:24 编辑
以下是我总结的交换两个变量的各种方式
- class ExchangeTest
- {
- public static void main(String []args)
- {
- int a = 4,b = 5;
- System.out.println("原始:a=" + a + ",b=" + b);
- //使用临时变量,无限制
- int temp = a;
- a = b;
- b = temp;
- System.out.println("交换:a=" + a + ",b=" + b);
- //使用加法,可能会溢出
- a = a + b;
- b = a - b;
- a = a - b;
- System.out.println("交换:a=" + a + ",b=" + b);
- //使用乘法,可能会溢出,且a,b不能为0
- a = a * b;
- b = a / b;
- a = a / b;
- System.out.println("交换:a=" + a + ",b=" + b);
- //使用异或,只能用于整形,且两个数不能相同
- a = a ^ b;
- b = a ^ b;
- a = a ^ b;
- System.out.println("交换:a=" + a + ",b=" + b);
- //使用表达式,无限制
- a = a + b - (b = a);
- System.out.println("交换:a=" + a + ",b=" + b);
- //使用表达式,无限制
- a = b + (b = a)*0;
- System.out.println("交换:a=" + a + ",b=" + b);
- }
- }
复制代码
欢迎大家继续补充,并帮忙指出其中的错误,谢谢!
|
|