java實現兩個int數交換
阿新 • • 發佈:2018-01-15
操作 使用 不用 col int 個數 span 定義 交換
普通方法,進階方法,大神方法
1 @Test 2 public void test3(){ 3 int m = 5; 4 int n = 12; 5 6 //要求m和n交換位置 7 System.out.println("m=" + m + " n=" + n);//m=5 n=12 8 9 //方法一:定義臨時變量 10 //優點:操作簡單,缺點:需定義臨時變量,內存消耗較大 11 int temp = m; 12 m = n;13 n = temp; 14 System.out.println("m=" + m + " n=" + n);//m=12 n=5 15 16 //方法二:不定義臨時變量,使用相加 17 //優點:無需定義臨時變量,節省內存。缺點:當兩個數值較大時,容易丟失精度 18 m = m + n;//12 + 5 19 n = m - n;//12 + 5 - 5,是原來的m的值,賦給n 20 m = m - n;//12 + 5 - 12,是原來n的值,賦給m 21 System.out.println("m=" + m + " n=" + n);//m=5 n=12 22 23 //方法三:大神專用,使用異或^ 24 //優點:不會丟失精度,不用定義變量,內存消耗最小,缺點:一般人不會想到這麽寫,寫了一般人也看不懂 25 m = m ^ n; 26 n = m ^ n;// m ^ n ^ n == m 27 m = m ^ n;// m ^ n ^ m == n 28 System.out.println("m=" + m + " n=" + n);//m=12 n=5 29 30 }
方法二不建議使用,因為有可能丟失精度
java實現兩個int數交換