在此程序中,您將學(xué)習(xí)兩種在Java中交換兩個數(shù)字的技術(shù)。第一個使用臨時變量進(jìn)行交換,而第二個不使用任何臨時變量。
public class SwapNumbers { public static void main(String[] args) { float first = 1.20f, second = 2.45f; System.out.println("--交換前--"); System.out.println("第一個數(shù)字 = " + first); System.out.println("第二個數(shù)字 = " + second); //first的值被分配給temporary float temporary = first; //second的值被賦給first first = second; //臨時的值(包含first的初始值)被賦給second second = temporary; System.out.println("--交換后--"); System.out.println("第一個數(shù)字 = " + first); System.out.println("第二個數(shù)字 = " + second); } }
運行該程序時,輸出為:
--交換前-- 第一個數(shù)字 = 1.2 第二個數(shù)字 = 2.45 --交換后-- 第一個數(shù)字 = 2.45 第二個數(shù)字 = 1.2
在上面的程序中,要交換的兩個數(shù)字1.20f和2.45f分別存儲在變量first和second中。
交換之前使用println()來打印變量,以在交換完成后清楚地看到結(jié)果。
首先,first的值存儲在臨時變量temporary(temporary = 1.20f)中。
然后,second的值存儲在first中(first = 2.45f)。
并且,最終的值temporary存儲在second(second = 1.20f)中。
這樣就完成了交換過程,并且變量被打印在屏幕上。
請記住,temporary的唯一用途是在交換之前保存 first 的值。您也可以不使用temporary交換數(shù)字。
public class SwapNumbers { public static void main(String[] args) { float first = 12.0f, second = 24.5f; System.out.println("--交換前--"); System.out.println("第一個數(shù)字 = " + first); System.out.println("第二個數(shù)字 = " + second); first = first - second; second = first + second; first = second - first; System.out.println("--交換后--"); System.out.println("第一個數(shù)字 = " + first); System.out.println("第二個數(shù)字 = " + second); } }
運行該程序時,輸出為:
--交換前-- 第一個數(shù)字 = 12.0 第二個數(shù)字 = 24.5 --交換后-- 第一個數(shù)字 = 24.5 第二個數(shù)字 = 12.0
在上面的程序中,我們使用簡單的數(shù)學(xué)來交換數(shù)字,而不是使用臨時變量。
對于操作,存儲(first - second)很重要。這存儲在變量中first。
first = first - second; first = 12.0f - 24.5f
然后,我們只需在該數(shù)字上加上 second(24.5f)-計算出的first(12.0f - 24.5f)即可交換該數(shù)字。
second = first + second; second = (12.0f - 24.5f) + 24.5f = 12.0f
現(xiàn)在,second持有12.0f(它最初是first的值)。因此,我們從交換的第二(12.0f)中減去計算第一(12.0f - 24.5f)得到另一個交換的數(shù)字。
first = second - first; first = 12.0f - (12.0f - 24.5f) = 24.5f
交換的數(shù)字使用println()打印在屏幕上。