java实现两个int数交换

2018-06-18 03:51:07来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

普通方法,进阶方法,大神方法

 1 @Test
 2     public void test3(){
 3         int m = 5;
 4         int n = 12;
 5         
 6         //要求m和n交换位置
 7         System.out.println("m=" + m + " n=" + n);//m=5 n=12
 8         
 9         //方法一:定义临时变量
10         //优点:操作简单,缺点:需定义临时变量,内存消耗较大
11         int temp = m;
12             m = n;
13             n = temp;
14         System.out.println("m=" + m + " n=" + n);//m=12 n=5
15         
16         //方法二:不定义临时变量,使用相加
17         //优点:无需定义临时变量,节省内存。缺点:当两个数值较大时,容易丢失精度
18         m = m + n;//12 + 5
19         n = m - n;//12 + 5 - 5,是原来的m的值,赋给n
20         m = m - n;//12 + 5 - 12,是原来n的值,赋给m
21         System.out.println("m=" + m + " n=" + n);//m=5 n=12
22         
23         //方法三:大神专用,使用异或^
24         //优点:不会丢失精度,不用定义变量,内存消耗最小,缺点:一般人不会想到这么写,写了一般人也看不懂
25         m = m ^ n;
26         n = m ^ n;// m ^ n ^ n == m
27         m = m ^ n;// m ^ n ^ m == n
28         System.out.println("m=" + m + " n=" + n);//m=12 n=5
29         
30     }

方法二不建议使用,因为有可能丢失精度

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java学习笔记37(字节流)

下一篇:Java学习笔记38(字符流)