交换两个数字的 Java 程序
本文通过实例展示了两种交换变量的技术:第一个使用临时变量进行交换,而第二个不使用任何临时变量。
要理解此示例,您应该具备以下Java 编程主题的知识:
示例 1:使用临时变量交换两个数字
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);
// 将 first 的值赋给临时变量
float temporary = first;
// 将 second 的值赋给 first
first = second;
// 将临时变量中的值赋给 second
second = temporary;
System.out.println("--After swap--");
System.out.println("First number = " + first);
System.out.println("Second number = " + second);
}
}
输出:
--Before swap--
First number = 1.2
Second number = 2.45
--After swap--
First number = 2.45
Second number = 1.2
在上述程序中,分别存储在变量 first
和 second
的两个数字 1.20f
和 2.45f
将被交换。
在交换之前使用 println()
打印变量是为了和在交换完成后比较结果。
- 首先,将
first
的值赋值给变量temporary
(temporary = 1.20f
). - 然后,将
second
的值赋值给变量first
(first = 2.45f
). - 最后,将
temporary
的值赋值给变量second
(second = 1.20f
).
程序最终完成了交换过程并且将变量被打印在屏幕上。
请记住,temporary
唯一的用途是是持有 first
在交换之前的值。您也可以在不使用临时变量的情况下交换数字.
示例 2:不使用临时变量交换两个数字
public class SwapNumbers {
public static void main(String[] args) {
float first = 12.0f, second = 24.5f;
System.out.println("--交换前--");
System.out.println("First number = " + first);
System.out.println("Second number = " + second);
first = first - second;
second = first + second;
first = second - first;
System.out.println("--交换后--");
System.out.println("First number = " + first);
System.out.println("Second number = " + second);
}
}
输出:
--交换前--
First number = 12.0
Second number = 24.5
--交换后--
First number = 24.5
Second number = 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
的值)。然后我们使用 first = second - first;
将 second
最初的值赋值给 first
。
first = second - first;
first = 12.0f - (12.0f - 24.5f) = 24.5f
最后使用 println()
将交换后的数字打印在屏幕上。