java基礎變數的交換

我是你們的隊長阿威啊發表於2020-10-06

java基礎——變數的交換

說到變數的交換我們第一時間想到的就是使用第三方的變數來進行交換,如下:

public static void main(String[] args) { 
        int a = 40;
        int b = 60;
        int c;   
        c= a;  //c = 40
        a = b;  // a = 60
        b = c;  // b = 40
    }

上面程式碼使用第三方變數就把a和b的值交換過來了,但是,如果不使用第三方變數,可以用什麼方法交換兩個變數呢?這個問題面試中也經常問道,下面就來看看不使用第三方的變數如何交換兩個變數的值吧!

第一種方法:使用數學運算子
使用加減運算:

public static void main(String[] args) {

        int a = 40;
        int b = 60;

        a = a + b;
        b = a - b;
        a = a - b;

        System.out.println("a為:"+ a);  // 60
        System.out.println("b為:"+ b);  // 40

    }

或者使用乘除運算:

public static void main(String[] args) {

        int a = 40;
        int b = 60;
        
        a = a * b;
        b = a / b;
        a = a / b;
        
        System.out.println("a為:"+ a); // 60
        System.out.println("b為:"+ b); // 40
    }

第一種方法:使用賦值方法
上面的程式碼看起來比較臃腫,這個方法一條程式碼就解決了!

public static void main(String[] args) {

        int a = 40;
        int b = 60;
        
        a = b + (b = a) * 0 ;
        
        System.out.println("a為:"+ a); // 60
        System.out.println("b為:"+ b); // 40
    }

看不懂上面程式碼的朋友需要還好的學習下Java的基礎了!我們可以拆開右邊看:首先 b = 60 ,a = 40,套入程式碼裡面就是 60 + ( 40 ) * 0,為什麼括號裡面是40就不用多說了吧,a 的值賦值給了b 所以b現在等於40了那麼括號裡面也就為40,先算乘除後算加減,60 + ( 40 ) * 0 結果就等於60,這樣就把a和b的值給換過來了!
以上就是除了使用第三方變數換值外的另外兩種思路,你們有其他更好的思路嗎?

相關文章