zoukankan      html  css  js  c++  java
  • JAVA交换两个变量的值-(不使用第三变量)

    以下方法的根本原理就是: 

    借助第三个变量

    c = a;
    a = b;
    b = c;

    运算符-不借助第三变量: 
    a = a+b; 
    b = a-b; 
    a = a-b; 
    为运算符-不借助第三个变量: 

    (此种方法运用这种原理:一个数对另一个数位异或两次,该数不变)
    a = a^b; 
    b = a^b; 
    a = a^b; 

    /**
     * Swap
     * 互换两个变量的值的方法
     * @author bc
     * @since 2018年3月27日
     */
    public class Swap {
        public static void main(String[] args) {
            int a = 3, b = 5;
            System.out.println("===临时变量===");
            temp(a, b);
            System.out.println("===算数运算===");
            arithmetic(a, b);
            System.out.println("===位运算====");
            bit(a, b);
        }
    
        // 借助第三个变量,使a,b变量的值交换
        public static void temp(int a, int b) {
            System.out.println("a=" + a + ";b=" + b);
    
            int c = a;
            a = b;
            b = c;
    
            System.out.println("a=" + a + ";b=" + b);
        }
    
        // 算数运算--(不借助第三个变量)
        public static void arithmetic(int a, int b) {
            System.out.println("a=" + a + ";b=" + b);
    
            a = a + b;//8
            b = a - b;//3
            a = a - b;//5
    
            System.out.println("a=" + a + ";b=" + b);
        }
    
        // 位运算--(不借助第三个变量)
        public static void bit(int a, int b) {
            System.out.println("a=" + a + ";b=" + b);
            
            //按位异或的运算规则--异:1
            /**
             *     a    :0011
             *     b    :0101
             * a^b  :0110
             */
            a = a ^ b; //0110
            /**
             *     a     :0110
             *     b     :0101
             *     a^b  :0011
             */
            b = a ^ b; //0011
            /**
             *     a     :0110
             *     b     :0011
             *     a^b  :0101
             */
            a = a ^ b; //0101
    
            System.out.println("a=" + a + ";b=" + b);
        }
    }
  • 相关阅读:
    2019.8.6原型链与继承
    2019.8.2闭包,作用域
    2019.8.1正则二
    2019.7.31正则
    2019.7.29二维数组
    2019.7.28关于数组和循环的八道题
    2019.7.27数组api
    DOM
    JavaScript数组5种去重方法
    JavaScript面向对象
  • 原文地址:https://www.cnblogs.com/brokencolor/p/8658053.html
Copyright © 2011-2022 走看看