交换两个数

用临时变量交换2个数

示例代码:

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个数

方式一

示例代码:

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的取值范围。

方式二

示例代码:

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个数的值

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏racaljk

正则表达式

\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配字符“n”。“\\n”匹配一个换行符。序列“\\...

1045
来自专栏运维技术迷

连仕彤博客[Python笔记] locals() 函数

1493
来自专栏desperate633

Java Iterable 与 Iterator

但实际中,我们不需要这么麻烦,因为所有collection都有一个iterator()方法,在JDK1.4之前这个方法定义在collection接口中的,因此所...

804
来自专栏Java帮帮-微信公众号-技术文章全总结

14.Java集合案例

Java 实例 - 数组转集合 以下实例演示了使用 Java Util 类的 Arrays.asList(name) 方法将数组转换为集合: ArrayToC...

3497
来自专栏java初学

final和static关键字

35911
来自专栏mathor

泛型

2217
来自专栏大闲人柴毛毛

稳扎稳打JavaScript(三)——创建对象的几种方式

有了前面两篇文章的基础后,我们来谈一谈在JS中创建对象的几种方式。 建议大家先预习下先前的两篇博客: 稳扎稳打JavaScript(一)——作用域链 ...

4394
来自专栏深度学习思考者

Python学习(五)——列表操作全透析

  列表是以类的形式实现的。“创建”列表实际上是将一个类实例化。因此,列表有多种方法可以操作。Python列表操作的函数和方法 列表操作包含以下函数: ...

17910
来自专栏软件开发 -- 分享 互助 成长

java中String类学习

java中String类的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度。 (3)charAT:字...

1917
来自专栏noteless

-1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态

面向对象把功能逻辑封装到类本身,用对象去调用功能 持有数据,结构更加自然,也更符合人们的思维习惯

921

扫码关注云+社区