交换两个数

用临时变量交换2个数

示例代码:

1
2
3
4
5
6
7
8
9
10
int a = 20;
int b = 15;

System.out.println("a="+a+",b="+b); //交换前2个数的值

int temp = a;
a = b;
b = temp;

System.out.println("a="+a+",b="+b); //交换后2个数的值

这种方式也是我们经常用到的,比较容易理解的一种方法。

不用临时变量交换2个数

方式一

示例代码:

1
2
3
4
5
6
7
8
9
10
int a = 20;
int b = 15;

System.out.println("a="+a+",b="+b); //交换前2个数的值

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

System.out.println("a="+a+",b="+b); //交换后2个数的值

使用这种方式要注意:如果a和b的值非常大,容易超出int的取值范围。

方式二

示例代码:

1
2
3
4
5
6
7
8
9
10
int a = 20;
int b = 15;

System.out.println("a="+a+",b="+b); //交换前2个数的值

a = a ^ b;
b = a ^ b;
a = a ^ b;

System.out.println("a="+a+",b="+b); //交换后2个数的值

本方法使用了位运算的相关知识。没有上面的方法易于理解,但是可能会被考到。

  • 本文作者: 赵俊
  • 本文链接: http://www.zhaojun.im/swap-two-number/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!