交换两个数字的 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

在上述程序中,分别存储在变量 firstsecond 的两个数字 1.20f2.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() 将交换后的数字打印在屏幕上。