博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
交换两个变量的值的方法-----从简单问题入手
阅读量:6947 次
发布时间:2019-06-27

本文共 865 字,大约阅读时间需要 2 分钟。

以前写交换数值的方法,会毫不思索写出这样的语句

swap(int a ,int b){

int temp ;

temp = a ;

a = b;

b = temp;

}

这样就可以实现a,b两个数的交换

但是现在要求不能通过第三个变量来做桥梁,只能使用这两个变量,怎么办呢?

方法一:

 

private static void swap2(int a, int b) {		a ^= b;		b ^= a;		a ^= b;		System.out.println("swap2:a = " + a + ";b = " + b);			}

利用了异或赋值运算符

 

方法二:

 

private static void swap3(int a, int b) {		a = b + (b = a)*0;				System.out.println("swap3 a = " + a + ";b = " + b);	}

 

这个方法够绝,一条语句写完

方法三

 

private static void swap4(int a, int b) {		a = a + b;		b = a - b;		a = a - b;		System.out.println("swap4: a = " + a + ";b = " + b);	}

巧妙利用算术运算

方法四:

 

private static void swap5(int a, int b) {		a = a * b;		b = a / b;		a = a / b;		System.out.println("swap5: a = " + a + ";b = " + b);	}

与方法三有点类似

 

 

 

但现在问题来了,在Java里,不存在指针、引用传递的概念,如何来解决这个问题呢?

一种不太好的方法是把要交换的变量包装到一个对象里,通过对象的引用达到交换的目的,但问题是复杂了,还有没有简单的方法呢?

目前还没有找到……

Java不同于C、C++,没有指针的概念,所以有些问题Java实在无能为力~~~~

 

转载地址:http://ykenl.baihongyu.com/

你可能感兴趣的文章
CSS解决高度自适应问题
查看>>
硬件产品介绍之思科MDS9710
查看>>
win32 备忘2
查看>>
鼠标css样式:cursor
查看>>
hadoop-2.7.1+zookeeper-3.4.8+hbase-1.2.1+apache-hive-2.0.0完全分布式集群
查看>>
【军哥谈CI框架】之Ajax分页教程—《兄弟连微电影第一季一路向东之屌丝程序员之戏说PHP》演......
查看>>
测试文章
查看>>
进程与线程的一个简单解释
查看>>
pdf password recovery remove去除pdf文件密码
查看>>
使用.NET连接Sybase数据库的几种方法
查看>>
myeclipse6.5安装 svn插件方法
查看>>
Spring AOP 实现原理
查看>>
肠子的小心思(三):通往消化道的入口也很神奇
查看>>
服务器负载突然飙高事件
查看>>
原来还可以这样坑人的!!切勿恶作剧!
查看>>
Memcache简介
查看>>
day18--linux下gzip、bzip2、zip、xz三种压缩工具的介绍
查看>>
我的友情链接
查看>>
Oracle 删除主键
查看>>
虚拟与现实,关于世界的本质
查看>>