交换两个数

用临时变量交换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个数的值

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

坚持原创技术分享,您的支持将鼓励我继续创作!