黑马程序员技术交流社区

标题: 这个函数怎么解释? [打印本页]

作者: xinleili3    时间: 2015-4-5 21:44
标题: 这个函数怎么解释?
  1. //今天看到了一个函数,对数组中的两个元素进行置换,这是怎么实现的?
复制代码

作者: xinleili3    时间: 2015-4-5 21:46
不好意思,函数没加进去
  1. private static void swap(int[] arr,int a,int b)  
  2.     {  
  3.         arr[a]=arr[b]+(arr[b]=arr[a])*0;  
  4.     }
复制代码

作者: thoris    时间: 2015-4-5 21:50
有更完整的么。。。
作者: qq853636281    时间: 2015-4-5 21:52
看不懂啊,就是一个数组中,2个元素换位置吗?
最简单的行不行。定义第三个变量

作者: 野马奔腾    时间: 2015-4-5 21:58
没看懂楼主的意思
作者: 仅此一抹心醉    时间: 2015-4-5 22:24
竟然真的可以实现,吊炸天,这是第四种方法了。

QQ截图20150405221851.png (1.81 KB, 下载次数: 13)

QQ截图20150405221851.png

作者: xinleili3    时间: 2015-4-5 22:28
已经搞明白了,之前运算顺序没搞懂,测试了一下发现很简单,就是从左往右算,不引入第三方变量将两个数互换的另一种方式。
  1. class Test

  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 swap(1,2);
  6.         }

  7.         public static void swap(int a, int b)
  8.         {
  9.                 System.out.println("a="+a);//输出1
  10.                 System.out.println("b="+b);//输出2
  11.                 a=b+(b=a)*0;
  12.                 System.out.println("a="+a);//输出2
  13.                 System.out.println("b="+b);//输出1
  14.         }
  15. }
复制代码


作者: Dark县令    时间: 2015-4-6 00:46
这个方法掉渣天!长知识了!!必须记下来!
作者: 57xiaoyu    时间: 2015-4-6 01:24
xinleili3 发表于 2015-4-5 22:28
已经搞明白了,之前运算顺序没搞懂,测试了一下发现很简单,就是从左往右算,不引入第三方变量将两个数互换 ...

赞一个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2