1. 程式人生 > 其它 >交換兩個變數的值 你有幾種方法

交換兩個變數的值 你有幾種方法

1.藉助第三變數

/ 宣告變數a和b
let a = 5
let b = 4
// 1. 臨時將變數a的值賦值給變數tmp
let tmp = a
// 2. 將變數b的值賦值給a
a = b
// 3. 將變數a的值(tmp的值)賦值給b
b = tmp

console.log(a) // 4
console.log(b) // 5

2.不借助第三變數 --es6變數的解構賦值

let a = 5;
let b = 4; // 請注意此位置的分號;是一定要存在的呀

// 陣列結構賦值,交換變數a,b的值
[a, b] = [b, a]

console.log(a) // 4
console.log(b) // 5

3.不借助第三變數 --數學運算

let a = 5
let b = 4

// 二者之和
a = a + b //a值為 5+4=9
// 二者之和 - b的值,剩餘a的值賦值給變數b
b = a - b //b值為 9-4=5
// 此刻a還是二者之和,a - b此刻相當於二者之和 - 變數b(a的值),那麼此刻剩餘的就是變數b的值,賦值給a變數
a = a - b //a值為 9-5=4

console.log(a) // 4
console.log(b) // 5

4.不借助第三變數 - - 藉助位運算子

let a = 5 // 0101
let b = 4 // 0100

// 按位移或運算
a = a ^ b // 0101 ^ 0100 ===> 0001,此時a的值為1
b = a ^ b // 0001 ^ 0100 ===> 0101,此時b的值為5 a = a ^ b // 0001 ^ 0101 ===> 0100,此時a的值為4 console.log(a) // 4 console.log(b) // 5