如何在 Swift 程序中不使用临时变量交换数字?


本教程将讨论如何编写一个 Swift 程序来交换两个数字,而无需使用临时变量。交换两个变量意味着互换两个变量的值。

不使用临时变量交换两个数字

给定两个变量 Number1 和 Number2,现在我们不使用任何临时变量来交换它们的值。这里我们使用元组来执行交换操作。

算法

算法解释如下:

  • 步骤 1 - 声明两个整型变量 - Number1 和 Number2

  • 步骤 2 - 为 Number1 和 Number2 分配值

  • 步骤 3 - 使用元组语法进行交换:

    (Number1, Number2) = (Number2, Number1)


  • 步骤 4 - 显示 Number1 和 Number2 变量的值

示例

以下 Swift 程序将展示如何不使用临时变量交换两个数字。

Open Compiler
import Foundation import Glibc var Number1 = 32 var Number2 = 54 print("Number 1 before swapping:", Number1) print("Number 2 before swapping:", Number2) (Number1, Number2) = (Number2, Number1) print("\nNumber 1 after swapping:", Number1) print("Number 2 after swapping:", Number2)

输出

Number 1 before swapping: 32
Number 2 before swapping: 54

Number 1 after swapping: 54
Number 2 after swapping: 32

在上面的代码中,我们有两个数字,Number1 = 32 和 Number2 = 54,现在我们使用元组交换它们。所以交换后的值为 Number1 = 54 和 Number2 = 32。

使用加法和减法运算交换数字

给定两个变量 Num_1 和 Num_2,现在我们使用加法和减法运算交换它们的值。

算法

算法解释如下:

  • 步骤 1 - 声明两个整型变量 - Num_1 和 Num_2

  • 步骤 2 - 为 Num_1 和 Num_2 分配值

  • 步骤 3 - 使用加法和减法运算交换数字:

    Num_1 = Num_1 + Num_2

    Num_2 = Num_1 - Num_2

    Num_1 = Num_1 - Num_2


  • 步骤 4 - 显示 Num_1 和 Num_2 变量的值

  • 步骤 5 - 结束

示例

以下 Swift 程序将展示如何使用加法和减法运算交换两个数字。

Open Compiler
import Foundation import Glibc var Number1 = 30 var Number2 = 59 print("Number 1 before swapping:", Number1) print("Number 2 before swapping:", Number2) Number1 = Number1 + Number2 Number2 = Number1 - Number2 Number1 = Number1 - Number2 print("\nNumber 1 after swapping:", Number1) print("Number 2 after swapping:", Number2)

输出

Number 1 before swapping: 30
Number 2 before swapping: 59

Number 1 after swapping: 59
Number 2 after swapping: 30

在上面的代码中,我们有两个数字,Number1 = 30 和 Number2 = 59,现在我们使用加法和减法运算交换它们。以下代码将显示交换过程:

Number1 = Number1 + Number2 // Number1 即 30 + 59 = 89

Number2 = Number1 - Number2 // Number2 即 89 - 59 = 30

Number1 = Number1 - Number2 // Number1 即 89 - 30 = 59

所以交换后的值为 Number1 = 59 和 Number2 = 30。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

使用乘法和除法运算交换数字

给定两个变量 Number1 和 Number2,现在我们使用乘法和除法运算交换它们的值。但是此方法有一个缺点,即如果任何一个变量的值为零,则会导致错误。

算法

算法解释如下:

  • 步骤 1 - 开始

  • 步骤 2 - 声明两个整型变量:Number1 和 Number2

  • 步骤 3 - 为 Number1 和 Number2 分配值

  • 步骤 4 - 使用乘法和除法运算交换数字:

    Num_1 = Number1 * Number2

    Num_2 = Number1 / Number2

    Num_1 = Number1 / Number2


  • 步骤 5 - 显示 Number1 和 Number2 变量的值

  • 步骤 6 - 结束

示例

以下 Swift 程序将展示如何使用乘法和除法运算交换两个数字。

Open Compiler
import Foundation import Glibc var Number1 = 38 var Number2 = 93 print("Number 1 before swapping:", Number1) print("Number 2 before swapping:", Number2) Number1 = Number1 * Number2 Number2 = Number1 / Number2 Number1 = Number1 / Number2 print("\nNumber 1 after swapping:", Number1) print("Number 2 after swapping:", Number2)

输出

Number 1 before swapping: 38
Number 2 before swapping: 93

Number 1 after swapping: 93
Number 2 after swapping: 38

在上面的代码中,我们有两个数字,Number1 = 38 和 Number2 = 93,现在我们使用乘法和除法运算交换它们。以下代码将显示交换过程:

Number1 = Number1 * Number2 // Number1 变为 3534 即 38 * 93 = 3534

Number2 = Number1 / Number2 // Number2 变为 38 即 3534 / 93 = 38

Number1 = Number1 / Number2 // Number1 变为 93 即 3534 / 38 = 93

所以交换后的值为 Number1 = 93 和 Number2 = 38。

使用按位异或运算符交换数字

给定两个变量 Number1 和 Number2,现在我们使用按位异或运算符(^)交换它们的值。此运算符执行两个数字的异或运算,并返回一个数字,该数字在两个数字的位彼此不同时,所有位都为 1。例如,8(二进制为 1000)和 3(二进制为 0011)的异或运算结果为 11(二进制为 1011)。

算法

算法解释如下:

  • 步骤 1 - 声明两个整型变量:Number1 和 Number2

  • 步骤 2 - 为 Number1 和 Number2 分配值

  • 步骤 3 - 使用按位异或运算符交换数字

    Number1 = Number1 ^ Number2

    Number2 = Number1 ^ Number2

    Number1 = Number1 ^ Number2


  • 步骤 4 - 显示 Number1 和 Number2 变量的值

示例

以下 Swift 程序将展示如何使用按位异或运算符交换数字。

Open Compiler
import Foundation import Glibc var Number1 = 7 var Number2 = 4 print("Number 1 before swapping:", Number1) print("Number 2 before swapping:", Number2) Number1 = Number1 ^ Number2 Number2 = Number1 ^ Number2 Number1 = Number1 ^ Number2 print("\nNumber 1 after swapping:", Number1) print("Number 2 after swapping:", Number2)

输出

Number 1 before swapping: 7
Number 2 before swapping: 4

Number 1 after swapping: 4
Number 2 after swapping: 7

在上面的代码中,我们有两个数字,Number1 = 7 和 Number2 = 4,现在我们使用按位异或运算符交换它们。以下代码将显示交换过程:

// 7 的二进制形式为 0111,4 的二进制形式为 0100

Number1 = Number1 ^ Number2 // Number1 将为 3(二进制形式为 0011),即 7 ^ 4 = 3

Number2 = Number1 ^ Number2 // Number2 将为 7(二进制形式为 0111),即 3 ^ 4 = 7

Number1 = Number1 ^ Number2 // Number2 将为 4(二进制形式为 0100),即 3 ^ 7 = 4

所以交换后的值为 Number1 = 4 和 Number2 = 7。

更新于: 2022-07-29

14K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告