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);
        }
    }
  • 相关阅读:
    R语言修改vector、matrix、dataframe列名
    R语言获取数据框的行数
    R语言的which函数,针对没有符合条件的返回值为integer(0),之后如何判断
    ArrayList总结
    经常涉及到的技术
    今天开始写博客啦!(测试..)
    [摘转] JS 数组合并问题
    t_category
    在 MySql 的 update 语句中使用 case when else end
    JSP 取当前时间
  • 原文地址:https://www.cnblogs.com/brokencolor/p/8658053.html
Copyright © 2011-2022 走看看