ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Java 程序:交换两个数字 > 原文: [https://www.programiz.com/java-programming/examples/swap-two-numbers](https://www.programiz.com/java-programming/examples/swap-two-numbers) #### 在此程序中,您将学习两种在 Java 中交换两个数字的技术。 第一个使用临时变量进行交换,而第二个不使用任何临时变量。 ## 示例 1:使用临时变量交换两个数字 ```java public class SwapNumbers { public static void main(String[] args) { float first = 1.20f, second = 2.45f; System.out.println("--Before swap--"); System.out.println("First number = " + first); System.out.println("Second number = " + second); // Value of first is assigned to temporary float temporary = first; // Value of second is assigned to first first = second; // Value of temporary (which contains the initial value of first) is assigned to second second = temporary; System.out.println("--After swap--"); System.out.println("First number = " + first); System.out.println("Second number = " + second); } } ``` 运行该程序时,输出为: ```java --Before swap-- First number = 1.2 Second number = 2.45 --After swap-- First number = 2.45 Second 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:交换两个数字而不使用临时变量 ```java public class SwapNumbers { public static void main(String[] args) { float first = 12.0f, second = 24.5f; System.out.println("--Before swap--"); System.out.println("First number = " + first); System.out.println("Second number = " + second); first = first - second; second = first + second; first = second - first; System.out.println("--After swap--"); System.out.println("First number = " + first); System.out.println("Second number = " + second); } } ``` 运行该程序时,输出为: ```java --Before swap-- First number = 12.0 Second number = 24.5 --After swap-- First number = 24.5 Second number = 12.0 ``` 在上面的程序中,我们使用简单的数学来交换数字,而不是使用临时变量。 对于该操作,`(first - second)`的存储很重要。 首先将其存储在变量``中。 ```java first = first - second; first = 12.0f - 24.5f ``` 然后,我们只需在`first`(`12.0f - 24.5f`)**后面加上**`second`(`24.5f`),即可交换该数字。 ```java second = first + second; second = (12.0f - 24.5f) + 24.5f = 12.0f ``` 现在,`second`保持`12.0f`(最初是第一值)。 因此,我们从交换的`second`(`12.0f`)中减去计算出的`first`(`12.0f - 24.5f`),以获得其他交换数。 ```java first = second - first; first = 12.0f - (12.0f - 24.5f) = 24.5f ``` 交换的号码使用`println()`打印在屏幕上。