(基础三)交换两个变量值的三种方法
2016-10-11 20:50
176 查看
//使用三种方法去交换两个变量的数值 public class ExchangeTwoVariable { public static void main(String[] args) { //方法一(简单): /* int a = 1,b = 2; int temp; System.out.println("交换前:a = " + a + " b = " + b); temp = a; a = b; b = temp; System.out.println("交换后:a = " + a + " b = " + b);*/ //方法二(简单): /*int a = 3,b = 4; System.out.println("交换前:a = " + a + " b = " + b); a = a + b; b = a - b; a = a - b; System.out.println("交换后:a = " + a + " b = " + b);*/ //方法三: //Tips:一个数异或同一个数两次,结果还是那个数。 int a = 5,b = 6; System.out.println("交换前:a = " + a + " b = " + b); a = a ^ b;//(1)经过运算,等式左边的a变成了一个中间数tmp(或者叫做临时数),此时b的数值没有发生变化,还是6。 //从第一步开始,a就是“一个数”,b就是“同一个数”。 b = a ^ b;//(2)因为一个数异或同一个数两次,结果还是那个数。此时a就是“一个数”,b就是“同一个数”。 //所以此时a^b就得到了原来的a,即5,但是我们的需求是要交换a,b的数值, //所以将得到的运算结果赋值给b,从而达到交换数据的目的,所以此时等式左边的b等于5。 //从第二步开始,b就是“一个数”,a就是“同一个数”。 a = a ^ b;//(3)在第二步中,等式右边的b等于6。 //因为一个数异或同一个数两次,结果还是那个数,此时b就是“一个数”,a就是“同一个数”。 //这样通过两次异或,我们又可以得到6,从而将其赋值给a。 //所以在第三步中等式右边a^b就得到了原来的b,即6,,但是我们的需求是要交换a,b的数值, //所以将得到的运算结果赋值给a,从而达到交换数据的目的,所以此时等式左边的a等于6。 System.out.println("交换后:a = " + a + " b = " + b); } }
原创:http://blog.csdn.net/u013383042/article/details/52791607
相关文章推荐
- 不使用第三方变量交换两个变量值的三种方法
- C语言基础—实现两个变量交换的三种方法
- 关于交换两个变量值的三种方法
- 三种方法实现不引入变量交换两个变量值
- 交换两个变量值的三种方法(Java实现)
- 黑马程序员__三种方法实现两个变量值的交换
- 实现两个变量值交换的三种方法
- 交换两个变量值的三种方法
- java基础(四):实现变量值交换的三种方法
- C语言三种方法实现两个变量值的交换
- 黑马程序员_C语言三种方法实现两个变量值的交换
- 三种方法实现不引入变量交换两个变量值
- 交换两个变量值(swap()函数)的几种方法
- 交换两个变量的三种方法
- 三种交换两个整数的方法
- C语言中—— 三种方法实现两个数值交换
- Java基础知识之位运算--两变量值交换方法
- 交换两个变量值的方法汇总
- 黑马程序员 C语言基础:变量值互换的三种方法
- 不借助第三个变量交换两个变量值的方法