您的位置:首页 > 编程语言 > Java开发

不借助第三方变量实现两个整数变量值的互换

2013-11-06 07:34 281 查看
          方法1:
          public void test(int a,int b){

                System.out.println("a="+a+";b="+b);

                a=a+b;

                b=a-b;//a-b为原来a中的值。

                a=a-b;//由于此时的b是原来a中的值,所以本行代码的a-b即为原来b中的值。

                System.out.println("a="+a+";b="+b);

          }
          注意:这种情况有一个局限性:由于a和b的值是未知的,所以如果这两个值都比较大的时候,则容易出现超出int范围的问题。
          方法2:
          public void test_1(int a,int b){//采用异或运算符来实现,这种方法的原理是使用了异或运算这样一个特点:一个数异或同一个数两次其结果还是那个数。

                System.out.println("a="+a+";b="+b);

                a=a^b;

                b=a^b;//相当于(a(刚传过来的a)^b(刚传过来的a))^b(刚传过来的a),根据异或运算的特点可知其结果为a(刚传过来的a),即b=a(刚传过来的a)。

                a=a^b;//相当于(a(刚传过来的a)^b(刚传过来的b))^b,由于代码执行过上面的代码后b的值变为了a(刚传过来的a),所以等号右边相当于(a(刚传过来的a)^b(刚传过来的b))^a(刚传过来的a),根据异或运算的特点可知其结果为b(刚传过来的b)。

                System.out.println("a="+a+";b="+b);

          }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java