如何在 C++、Python 和 JavaScript 中交换两个变量

作为程序员,您可能遇到过需要交换两个数字的情况。交换两个数字是程序员在编码时最常见的情况之一。

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

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

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

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

第 2 步:将第二个变量的值分配给第一个变量。

第 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 <iostream>
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实现:

 <script>
// Function to swap two numbers
// using a temporary variable
function swapNums(num1, num2) {
// Printing numbers before swapping
document.write("Before Swapping: <br>");
document.write("num1: " + num1 + ", num2: " + num2 + "<br>");
// Swapping with the help of a
// temporary variable "temp"
let temp = num1;
num1 = num2;
num2 = temp;
// Printing numbers after swapping
document.write("After Swapping: <br>");
document.write("num1: " + num1 + ", num2: " + num2 + "<br>");
}
// Driver Code
swapNums(80, 50);
</script>

输出:

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

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

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

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

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

 #include <iostream>
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 实现:

 <script>
// Function to swap two numbers
// using arithmetic operators (+, -)
function swapNums(num1, num2) {
// Printing numbers before swapping
document.write("Before Swapping: <br>");
document.write("num1: " + num1 + ", num2: " + num2 + "<br>");
// Swapping with the help of
// using arithmetic operators (+, -)
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
// Printing numbers after swapping
document.write("After Swapping: <br>");
document.write("num1: " + num1 + ", num2: " + num2 + "<br>");
}
// Driver Code
swapNums(80, 50);
</script>

输出:

 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,编译器将抛出除以零错误。因此,您应该避免这种交换两个数字的方法。

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

按位异或运算符用于交换两个数字。

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

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

 #include <iostream>
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 实现:

相关:如何在 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 实现:

 <script>
// Function to swap two numbers
// using XOR operator
function swapNums(num1, num2) {
// Printing numbers before swapping
document.write("Before Swapping: <br>");
document.write("num1: " + num1 + ", num2: " + num2 + "<br>");
// Swapping with the help of
// using XOR operator
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
// Printing numbers after swapping
document.write("After Swapping: <br>");
document.write("num1: " + num1 + ", num2: " + num2 + "<br>");
}
// Driver Code
swapNums(80, 50);
</script>

输出:

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

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

您还可以在不使用任何库函数的情况下在一行中交换两个数字。

单行解决方案的 C++ 实现

#include <iostream>
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 实现

<script>
let num1 = 80, num2 = 50;
document.write("Before Swapping: <br>");
document.write("num1: " + num1 + ", num2: " + num2 + "<br>");
// One line solution to swap two numbers
(num1 ^= num2), (num2 ^= num1), (num1 ^= num2);
document.write("After Swapping: <br>");
document.write("num1: " + num1 + ", num2: " + num2 + "<br>");
</script>

输出:

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

相关:每个程序员都必须知道的 10 条基本编程原则

如果您想查看本文中使用的完整源代码,请访问GitHub 存储库

改善你的编程习惯

如果你想提高你的编程习惯,你应该遵循一些编程原则,比如 KISS(Keep It Simple, Stupid)、Dry Code、YAGNI(你不需要它)等等。 但是,如果你做一些通用编码错误,您应该了解最常见的编码错误。这些知识将帮助您避免常见的陷阱并保持您的代码有意义。