原文: https://www.programiz.com/kotlin-programming/examples/swap-two-numbers
在此程序中,您将学到两种在 Kotlin 中交换两个数字的技术。 第一个使用临时变量进行交换,而第二个不使用任何临时变量。
示例 1:使用临时变量交换两个数字
fun main(args: Array<String>) {var first = 1.20fvar second = 2.45fprintln("--Before swap--")println("First number = $first")println("Second number = $second")// Value of first is assigned to temporaryval temporary = first// Value of second is assigned to firstfirst = second// Value of temporary (which contains the initial value of first) is assigned to secondsecond = temporaryprintln("--After swap--")println("First number = $first")println("Second number = $second")}
运行该程序时,输出为:
--Before swap--First number = 1.2Second number = 2.45--After swap--First number = 2.45Second number = 1.2
在上述程序中,将要交换的两个数字1.20f和2.45f存储在变量中:分别为first和second。
交换之前使用println()打印变量,以在交换完成后清楚地看到结果。
- 首先,将
first的值存储在变量temporary(temporary = 1.20f)中。 - 然后,将
second的值存储在first(first = 2.45f)中。 - 并且,最终将
temporary的值存储在second(second = 1.20f)中。
这样就完成了交换过程,并且变量被打印在屏幕上。
请记住,temporary的唯一用途是在交换之前先保持first的值。 您也可以不使用temporary交换号码。
示例 2:交换两个数字而不使用临时变量
fun main(args: Array<String>) {var first = 12.0fvar second = 24.5fprintln("--Before swap--")println("First number = $first")println("Second number = $second")first = first - secondsecond = first + secondfirst = second - firstprintln("--After swap--")println("First number = $first")println("Second number = $second")}
运行该程序时,输出为:
--Before swap--First number = 12.0Second number = 24.5--After swap--First number = 24.5Second number = 12.0
在上面的程序中,我们使用简单的数学来交换数字,而不是使用临时变量。
对于该操作,(first - second)的存储很重要。 首先将其存储在变量``中。
first = first - second;first = 12.0f - 24.5f
然后,我们只需将这个数 - 之前计算的first(12.0f - 24.5f)加上second(24.5f)即可交换该数字。
second = first + second;second = (12.0f - 24.5f) + 24.5f = 12.0f
现在,second保持12.0f(最初是第一值)。 因此,我们从交换的second(12.0f)中减去计算出的first(12.0f - 24.5f),以获得其他交换数。
first = second - first;first = 12.0f - (12.0f - 24.5f) = 24.5f
交换的号码使用println()打印在屏幕上。
这是 Java 中的等效代码:在 Java 中交换两个数字
