如何在不使用临时变量的情况下交换两个整数值?

时间:2014-10-09 09:15:23

标签: c#

// Swapping value between two integer without using temp variable.
        int a = 5;
        int b = 7;

        Console.WriteLine("Before Swap.");
        Console.WriteLine("value of A is: {0}", a);
        Console.WriteLine("value of B is: {0}", b);

        Console.ReadLine();

O / P: 在交换之前。 A的值是:5 A的值是:7

交换后。 A的值是:7 A的值是:5

那么如何在不使用临时变量的情况下交换两个整数值?

4 个答案:

答案 0 :(得分:2)

尝试:

 a = a + b;
 b = a - b;
 a = a - b;

答案 1 :(得分:1)

第一种方法

a = a + b;
b = a - b;
a = a - b;

第二种方法

a ^= b;
b ^= a;
a ^= b;

答案 2 :(得分:0)

a = a + b;
b = a - b;
a = a - b;

答案 3 :(得分:0)

您需要使用XOR运算符:

a = a ^ b;
b = a ^ b;
a = a ^ b;

这是有效的,因为使用相同的值应用两次XOR会取消操作:

a ^ b ^ b => a