在此程序中,您将学习两种在Java中交换两个数字的技术。第一个使用临时变量进行交换,而第二个不使用任何临时变量。
示例1:使用临时变量交换两个数字
public class SwapNumbers { public static void main(String[] args) { float first = 1.20f, second = 2.45f; System.out.println("--交换前--"); System.out.println("第一个数字 = " + first); System.out.println("第二个数字 = " + second); //first的值被分配给temporary float temporary = first; //second的值被赋给first first = second; //临时的值(包含first的初始值)被赋给second second = temporary; System.out.println("--交换后--"); System.out.println("第一个数字 = " + first); System.out.println("第二个数字 = " + second); } }
运行该程序时,输出为:
--交换前-- 第一个数字 = 1.2 第二个数字 = 2.45 --交换后-- 第一个数字 = 2.45 第二个数字 = 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:交换两个数字而不使用临时变量
public class SwapNumbers { public static void main(String[] args) { float first = 12.0f, second = 24.5f; System.out.println("--交换前--"); System.out.println("第一个数字 = " + first); System.out.println("第二个数字 = " + second); first = first - second; second = first + second; first = second - first; System.out.println("--交换后--"); System.out.println("第一个数字 = " + first); System.out.println("第二个数字 = " + second); } }
运行该程序时,输出为:
--交换前-- 第一个数字 = 12.0 第二个数字 = 24.5 --交换后-- 第一个数字 = 24.5 第二个数字 = 12.0
在上面的程序中,我们使用简单的数学来交换数字,而不是使用临时变量。
对于操作,存储(first - second)很重要。这存储在变量中first。
first = first - second; first = 12.0f - 24.5f
然后,我们只需在该数字上加上 second(24.5f)-计算出的first(12.0f - 24.5f)即可交换该数字。
second = first + second; second = (12.0f - 24.5f) + 24.5f = 12.0f
现在,second持有12.0f(它最初是first的值)。因此,我们从交换的第二(12.0f)中减去计算第一(12.0f - 24.5f)得到另一个交换的数字。
first = second - first; first = 12.0f - (12.0f - 24.5f) = 24.5f
交换的数字使用println()打印在屏幕上。