對於兩種變量的交換,我發現四種方法,下面我用Java來演示一下。
1.利用第三個變量交換數值,簡單的方法。
(代碼演示一下)
class TestEV
//創建一個類
{
public static void main(String[]args)
{
int x =5,y=10; //定義兩個變量
int temp = x; //定義第三臨時變量temp並提取x值
x = y; //把y的值賦給x
y = temp; //然後把臨時變量temp值賦給y
System.out.println("x="+x+"y="+y);
}
}
2.可以用兩個數求和然後相減的方式進行數據交換,弊端在於如果 x 和 y 的數值過大的話,超出 int 的值會損失精度。
(代碼演示一下)
class TestEV
//創建一個類
{
public static void main(String[]args)
{
int x =5,y=10; //定義兩個變量
x = x + y; //x(15) = 5 + 10;
y = x - y; //y(5) = x(15) - 10;
x = x - y; //x(10) = x(15) - y(5)
System.out.println("x="+x+"y="+y);
}
}
3.利用位運算的方式進行數據的交換,利用的思想原理是:一個數異或同一個數兩次,結果還是那個數,而且不會超出int范圍
(代碼演示一下)
class TestEV
//創建一個類
{
public static void main(String[]args)
{
int x =5,y=10; //定義兩個變量
x = x^y;
y = x^y; //y=(x^y)^y
x = x^y; //x=(x^y)^x
System.out.println("x="+x+"y="+y);
}
}
4.最為簡單的,在打印輸出的時候直接交換變量
(代碼演示一下)
class TestEV
//創建一個類
{
public static void main(String[]args)
{
int x =5,y=10; //定義兩個變量
System.out.println("x="+y+"y="+x); //直接在輸出的時候交換
}
}