Java不使用第三个变量交换两个变量的数据
来源:互联网 发布:淘宝手办店黑名单 编辑:程序博客网 时间:2024/05/24 01:58
/** * 变量:存储数据的空间 * 数据:文字和符号的表示 * 数据的分类: * 数字:byte short int long float double * 非数字:char boolean * * @author siggy * */public class VarDemo { public static void main(String[] args) { int a=20; int b=10; int c=a+b; System.out.println("a+b="+c); //需求:有两个变量 分别有值9,4 那么如何在不使用第三个变量的前提下交换两个变量的数据 //加减法 a=a+b; b=a-b; a=a-b; System.out.println("a="+a+"\tb="+b); //位运算 a=20; b=10; a=a^b; b=a^b; a=a^b; System.out.println("a="+a+"\tb="+b); //一个表达式 a=20; b=10; a=b+0*(b=a); System.out.println("a="+a+"\tb="+b); }}
第一种加减法,当a或b为int类型的最大值时会越界,产生bug
第二种异或,简单高效,计算机本身就是二进制运算,效率更高
第三种表达式,算是编译原理的应用,两个栈,操作数栈和符号栈,然后按顺序压栈,需要注意的一点就是a=b+0*(b=a);第一个b传值,压栈进入是10,然后(b=a)压栈进入b传的是b,因为有等号,需要赋值,所以运算之后b=a=20,a等于b压栈进入的值10
阅读全文
0 0
- Java不使用第三个变量交换两个变量的数据
- 不添加第三个变量交换两个变量的数据
- 交换两个变量的值不使用第三个变量
- 交换两个变量的值,不使用第三个变量
- 不使用第三个变量,交换两个变量的值!
- 交换两个变量的值,不使用第三个变量
- 交换两个变量的值,不使用第三个变量
- 交换两个变量的值,不使用第三个变量
- 不使用第三个变量 交换两个变量的值
- 交换两个变量的值,不使用第三个变量
- 交换两个变量的值,不使用第三个变量
- 交换两个变量的值 不使用第三个变量
- 交换两个变量的值,不使用第三个变量
- 不使用第三个变量交换两个变量的值
- 交换两个变量的值,不使用第三个变量
- 交换两个变量的值,不使用第三个变量
- 不使用第三个变量,交换两个变量的值
- 不使用第三个变量交换两个变量的值
- 网络编程(一)
- Android MVC与MVP架构适用场景
- 设计模式之单例模式
- STL之Funtion Object
- 关于审题
- Java不使用第三个变量交换两个变量的数据
- 欢迎使用CSDN-markdown编辑器
- VS中OpenGL 配置
- Struts2中Action类的方法调用
- P3925,一道线段树合并题
- ip,TCP,UDP,HTTP,TCP/IP,SOCKET
- 苹果3D视觉报告:龙头引领行业大趋势
- echarts地图
- UNIX网络编程之IO复用(一):select系统调用