如何在C+,Python和Javascript中交换两个变量

MakeUseOf · 市场分析 · 06月09日
内容显示:
  • 英文
  • 中文
  • 中英对照

作为一个程序员,你可能面临着一种需要交换两个数字的情况。交换两个数字是程序员在编写代码时面临的最常见的情况之一。

您可以使用一个临时变量或通过使用算术和位操作交换两个数字。在本文中,您将了解使您能够交换两个数字的各种方法。

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

使用临时变量是交换两个数字的最简单方法。以下三个简单步骤:

步骤1 :将第1个变量的值分配给一个临时变量。

步骤2 :将第2个变量的值分配给第1个变量。

步骤3 :将临时变量的值分配给第二个变量。

例如:

让num1 = 80和num2 = 50(在交换之前)。

步骤1之后: num1 = 80 , num2 = 50 , temp = 80 。

步骤2之后: num1 = 50 , num2 = 50 , temp = 80 。

步骤3之后: num1 = 50 , num2 = 80 , temp = 80 。

因此, Num1等于50 , Num2等于交换后的80 。

使用临时变量交换两个数字的C++实现

以下是使用临时变量交换两个数字的C++实现:

#include 
using namespace std;
// Function to swap two numbers
// using a temporary variable
void swapNums(int num1, int num2)
(
// Printing numbers before swapping
cout << "Before Swapping: " << endl;
cout << "num1 = " << num1 << ", num2 = " << num2 << endl;
// Swapping with the help of a
// temporary variable "temp"
int temp = num1;
num1 = num2;
num2 = temp;
// Printing numbers after swapping
cout << "After Swapping: " << endl;
cout << "num1 = " << num1 << ", num2 = " << num2 << endl;
)
// Driver Code
int main()
(
swapNums(80, 50);
return 0;
)

产出:

Before Swapping: 
num1 = 80, num2 = 50
After Swapping:
num1 = 50, num2 = 80

Python实现使用临时变量交换两个数字

下面是使用临时变量交换两个数字的Python实现:

# Function to swap two numbers
# using a temporary variable
def swapNums(num1, num2):
# Printing numbers before swapping
print("Before Swapping:")
print("num1: " , num1 , ", num2: " , num2)
# Swapping with the help of a
# temporary variable "temp"
temp = num1
num1 = num2
num2 = temp
# Printing numbers after swapping
print("After Swapping:")
print("num1: " , num1 , ", num2: " , num2)

# Driver Code
swapNums(80, 50)

产出:

Before Swapping: 
num1 = 80, num2 = 50
After Swapping:
num1 = 50, num2 = 80

使用临时变量交换两个数字的JavaScript实现

以下是使用临时变量交换两个数字的JavaScript实现:

产出:

Before Swapping: 
num1 = 80, num2 = 50
After Swapping:
num1 = 50, num2 = 80

如何使用算术运算符(加法和减法)交换两个数字

首先,得到两个数字的和,然后您可以使用和减去得到所需的数字。

使用算术运算符(加法和减法)交换两个数字的C++实现

以下是使用算术运算符(加法和减法)交换两个数字的C++实现:

#include 
using namespace std;
// Function to swap two numbers
// using arithmetic operators (+, -)
void swapNums(int num1, int num2)
(
// Printing numbers before swapping
cout << "Before Swapping: " << endl;
cout << "num1 = " << num1 << ", num2 = " << num2 << endl;
// Swapping with the help of
// artithmetic operators (+, -)
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
// Printing numbers after swapping
cout << "After Swapping: " << endl;
cout << "num1 = " << num1 << ", num2 = " << num2 << endl;
)
// Driver Code
int main()
(
swapNums(80, 50);
return 0;
)

产出:

Before Swapping: 
num1 = 80, num2 = 50
After Swapping:
num1 = 50, num2 = 80

Python实现使用算术运算符交换两个数字(加法和减法)

下面是使用算术运算符(加法和减法)交换两个数字的Python实现:

# Function to swap two numbers
# using arithmetic operators (+, -)
def swapNums(num1, num2):
# Printing numbers before swapping
print("Before Swapping:")
print("num1: " , num1 , ", num2: " , num2)
# Swapping with the help of
# arithmetic operators (+, -)
num1 = num1 + num2
num2 = num1 - num2
num1 = num1 - num2
# Printing numbers after swapping
print("After Swapping:")
print("num1: " , num1 , ", num2: " , num2)

# Driver Code
swapNums(80, 50)

产出:

Before Swapping: 
num1 = 80, num2 = 50
After Swapping:
num1 = 50, num2 = 80

使用算术运算符(加法和减法)交换两个数字的JavaScript实现

以下是使用算术运算符(加法和减法)交换两个数字的JavaScript实现:

产出:

Before Swapping: 
num1 = 80, num2 = 50
After Swapping:
num1 = 50, num2 = 80

如何使用算术运算符(乘法和除法)交换两个数字

您可以使用乘法和除法在三个简单的步骤中交换两个数字:

步骤1 : Num1 = Num1 * Num2

步骤2 : Num2 = Num1 / Num2

步骤3 : Num1 = Num1 / Num2

Num1和Num2的值互换。

这不是交换两个数字的首选方法,因为如果其中一个数字是0 ,这两个数字的乘积也将是0 。此外,如果第二个数字是0 ,编译器将抛出零错误的除法。因此,您应该避免这种交换两个数字的方法。

如何使用位运算符交换两个数字

位XOR运算符用于交换两个数字。

使用位运算符交换两个数字的C++实现

以下是使用XOR运算符交换两个数字的C++实现:

#include 
using namespace std;
// Function to swap two numbers
// using XOR operator
void swapNums(int num1, int num2)
(
// Printing numbers before swapping
cout << "Before Swapping: " << endl;
cout << "num1 = " << num1 << ", num2 = " << num2 << endl;
// Swapping with the help of
// XOR operator
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
// Printing numbers after swapping
cout << "After Swapping: " << endl;
cout << "num1 = " << num1 << ", num2 = " << num2 << endl;
)
// Driver Code
int main()
(
swapNums(80, 50);
return 0;
)

产出:

Before Swapping: 
num1 = 80, num2 = 50
After Swapping:
num1 = 50, num2 = 80

使用位运算符交换两个数字的Python实现

下面是使用XOR操作符交换两个数字的Python实现:

# Function to swap two numbers
# using XOR operator
def swapNums(num1, num2):
# Printing numbers before swapping
print("Before Swapping:")
print("num1: " , num1 , ", num2: " , num2)
# Swapping with the help of
# XOR operator
num1 = num1 ^ num2
num2 = num1 ^ num2
num1 = num1 ^ num2
# Printing numbers after swapping
print("After Swapping:")
print("num1: " , num1 , ", num2: " , num2)

# Driver Code
swapNums(80, 50)

产出:

Before Swapping:
num1: 80 , num2: 50
After Swapping:
num1: 50 , num2: 80

使用位运算符交换两个数字的JavaScript实现

以下是使用XOR操作符交换两个数字的JavaScript实现:

产出:

Before Swapping:
num1: 80, num2: 50
After Swapping:
num1: 50, num2: 80

用C++ 、 Python和JavaScript交换两个数字的单行解决方案

您还可以在一行中交换两个数字,而无需使用任何库函数。

一个行解决方案的C++实现

#include 
using namespace std;
int main()
(
int num1 = 80, num2 = 50;
cout << "Before Swapping: " << endl;
cout << "num1 = " << num1 << ", num2 = " << num2 << endl;
// One line solution to swap two numbers
num1 = num1 ^ num2, num2 = num1 ^ num2, num1 = num1 ^ num2;
cout << "After Swapping: " << endl;
cout << "num1 = " << num1 << ", num2 = " << num2 << endl;
return 0;
)

产出:

Before Swapping:
num1: 80, num2: 50
After Swapping:
num1: 50, num2: 80

一行解决方案的Python实现

num1 = 80
num2 = 50
print("Before Swapping:")
print("num1: " , num1 , ", num2: " , num2)
# One line solution to swap two numbers
num1, num2 = num2, num1
print("After Swapping:")
print("num1: " , num1 , ", num2: " , num2)

产出:

Before Swapping:
num1: 80, num2: 50
After Swapping:
num1: 50, num2: 80

一行解决方案的JavaScript实现

产出:

Before Swapping:
num1: 80, num2: 50
After Swapping:
num1: 50, num2: 80

如果您想了解本文中使用的完整源代码,这里是GitHub存储库。

改善你的编程习惯

如果你想改善你的编程习惯,你应该遵循某些编程原则,如KISS(保持简单、愚蠢)、干代码、 YAGNI(你不需要它)等。但是,如果你犯了一些常见的编码错误,你应该知道最常见的编码错误。这些知识将帮助你避免常见的陷阱,并保持代码有意义。

相关标签:
kiss one
关注西梅公众号