最簡單的方法是用乙個臨時變數
var a = 10, b = 20;
var temp = a;
a = b;
b = temp;
讓其中乙個變數變成與a和b都有關係的值
a = a + b;
b = a - b;
a = a - b;
或者
a = a - b;
b = a + b;
a = b - a;
利用
位運算
a ^= b;
b ^= a;
a ^= b;
c++甚至可以a^=b^=a^=b來完成任務,但是js不可以,不過可以這樣
a = (b^=a^=b)^a;
把a先變成乙個物件
a = ;
b = a.b;
a = a.a;
把a先換成乙個陣列
a = [a, b];
b = a[0];
a = a[1];
根據運算子優先順序,先執行b=a,然後一步陣列索引讓a得到b的值
a = [b, b = a][0];
es6的解構賦值語法
[a,b] = [b, a];
不借助第三個變數交換兩個變數的值
通常我們的做法是 尤其是在學習階段 定義乙個新的變數,借助它完成交換。如下 int a,b a 10 b 15 int t t a a b b t 這種演算法易於理解,特別適合幫助初學者了解電腦程式的特點,是賦值語句的經典應用。在實際軟體開發當中,此演算法簡單明瞭,不會產生歧義,便於程式設計師之間的...
JAVA不借助第三個變數實現兩個變數交換的思考
package mypackage public class demo 方法1 public void xchan01 int a,int b 方法2 public void xchan02 int a,int b 方法3 兩數交換不一定需要第三個元素 演算法問題 巧妙交換,提出的缺點會溢位經測驗是...
實現兩個值的交換(不借助第三個變數)
今天總結兩個不借助第三個變數實現兩個值的交換的方法 int main int main 今天主要聊聊第乙個方法,因為可讀性較強,並且聽一些老師說,這個方法也被很多網際網路公司作為面試題,但其實這個方法是有bug的,隱藏的很深,我們來分析分析。include void swap 1 int a,int...