在此程序中,您將學(xué)習(xí)兩種在Java中交換兩個(gè)數(shù)字的技術(shù)。第一個(gè)使用臨時(shí)變量進(jìn)行交換,而第二個(gè)不使用任何臨時(shí)變量。
fun main(args: Array<String>) { var first = 12.0f var second = 24.5f println("--交換前--") println("第一個(gè)數(shù)字 = $first") println("第二個(gè)數(shù)字 = $second") first = first - second second = first + second first = second - first println("--交換后--") println("第一個(gè)數(shù)字 = $first") println("第二個(gè)數(shù)字 = $second") }
運(yùn)行該程序時(shí),輸出為:
--交換前-- 第一個(gè)數(shù)字 = 1.2 第二個(gè)數(shù)字 = 2.45 --交換后-- 第一個(gè)數(shù)字 = 2.45 第二個(gè)數(shù)字 = 1.2
在上面的程序中,要交換的兩個(gè)數(shù)字1.20f和2.45f分別存儲(chǔ)在變量first和second中。
交換之前使用println()來(lái)打印變量,以在交換完成后清楚地看到結(jié)果。
首先,first的值存儲(chǔ)在臨時(shí)變量temporary(temporary = 1.20f)中。
然后,second的值存儲(chǔ)在first中(first = 2.45f)。
并且,最終的值temporary存儲(chǔ)在second(second = 1.20f)中。
這樣就完成了交換過(guò)程,并且變量被打印在屏幕上。
請(qǐng)記住,temporary的唯一用途是在交換之前保存 first 的值。您也可以不使用temporary交換數(shù)字。
fun main(args: Array<String>) { var first = 12.0f var second = 24.5f println("--交換前--"); println("第一個(gè)數(shù)字 = " + $first) println("第二個(gè)數(shù)字 = " + $second) first = first - second second = first + second first = second - first println("--交換后--"); println("第一個(gè)數(shù)字 = " + $first) println("第二個(gè)數(shù)字 = " + $second) }
運(yùn)行該程序時(shí),輸出為:
--交換前-- 第一個(gè)數(shù)字 = 12.0 第二個(gè)數(shù)字 = 24.5 --交換后-- 第一個(gè)數(shù)字 = 24.5 第二個(gè)數(shù)字 = 12.0
在上面的程序中,我們使用簡(jiǎn)單的數(shù)學(xué)來(lái)交換數(shù)字,而不是使用臨時(shí)變量。
對(duì)于操作,存儲(chǔ)(first - second)很重要。這存儲(chǔ)在變量中first。
first = first - second; first = 12.0f - 24.5f
然后,我們只需在該數(shù)字上加上 second(24.5f)-計(jì)算出的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)中減去計(jì)算第一(12.0f - 24.5f)得到另一個(gè)交換的數(shù)字。
first = second - first; first = 12.0f - (12.0f - 24.5f) = 24.5f
交換的數(shù)字使用println()打印在屏幕上。
這是Java中的等效代碼:在Java中交換兩個(gè)數(shù)字