1. 程式人生 > 其它 >交換兩個變數的值

交換兩個變數的值

技術標籤:java演算法資料結構

交換兩個變數的值


前言

基於java編寫的簡單交換兩個變數的值。

可以作為參考 ,如果你們有什麼好的方法可以分享,一起學習。

方法一:

通用的方案:適用於任意的資料型別

class Swap1{
	public static void main(String[] args){
        int x = 1;
        int y = 2; 
        /*
        	通用的方案:適用於任意的資料型別
        	藉助於第三個通樣型別的臨時變數
        */
int temp = x;//x變數中值就賦值給了temp temp = 1 x = y;//再把y中的值放到x中,x = 2 y = temp;//再把temp中的值賦值給y y=1 System.out.println("x = " + x); System.out.println("y = " + y); } }

方法二:

只適用於int等整數型別

class Swap2{
	public static void main(String[] args){
        int
x = 1; int y = 2; /* 方案二:只適用於int等整數型別 */ x = x ^ y; y = x ^ y;//(新的x) ^ 原來的y = (原來的x ^ 原來的y) ^ 原來的y = 原來的x (求不同) x = x ^ y;//(新的x) ^ 新的y = (原來的x ^ 原來的y) ^ 原來的x = 原來的y System.out.println("x = " + x); System.out.println("y = " + y); } }

方法三:

只適用於int等整數型別

class Swap3
{ public static void main(String[] args){ int x = 1; int y = 2; /* 方案三:只適用於int等整數型別 有風險,可能會溢位 */ x = x + y;//有風險,可能會溢位 y = x - y;//(新的x) - 原來的y = (原來的x + 原來的y)- 原來的y = 原來的x x = x - y;//(新的x) - 新的y = (原來的x + 原來的y) - 原來的x = 原來的y System.out.println("x = " + x); System.out.println("y = " + y); } }

方法四:

極少用

class Swap4{
	public static void main(String[] args){
        int x = 1;
        int y = 2; 
   /*
	方案四:很少會用到,瞭解
	*/
	x = (y + x) - (y = x);
	System.out.println("x = " + x);
	System.out.println("y = " + y);
	}
}

總結

上面是目前使用最多的交換兩個變數的值得方法,還有一些其他方法,用得不多,而且也會出現溢位等問題。掌握這四種也夠用了。