我发现这个代码使用XOR ^运算符交换两个数字而不使用第三个变量.
码:
int i = 25;
int j = 36;
j ^= i;
i ^= j;
j ^= i;
Console.WriteLine("i:" + i + " j:" + j);
//numbers Swapped correctly
//Output: i:36 j:25
Run Code Online (Sandbox Code Playgroud)
现在我将上面的代码更改为此等效代码.
我的代码:
int i = 25;
int j = 36;
j ^= i ^= j ^= i; // I have changed to this equivalent (???).
Console.WriteLine("i:" + i + " j:" + j);
//Not Swapped correctly
//Output: i:36 j:0
Run Code Online (Sandbox Code Playgroud)
现在,我想知道,为什么我的代码输出不正确?
例如,如果我有一个保证接收5或7作为参数的函数,我希望函数在收到7时返回5,如果收到5则不返回5而不使用任何条件.
我在接受采访时被问到这个问题并且非常难过,谢谢.
有两个整数变量.您是否可以在不使用任何if条件的情况下交换这些整数变量,而无需转换,也不使用其他变量?例如:
int a = 10;
int b = 5;
Run Code Online (Sandbox Code Playgroud)
a > b总是.答案应该是a == 5和b == 10
它是如何进行交换的?
A = A + B
B = A + B
A = B +一
我不同意它换成书!
书中的选项包括"a和b的值的互补","否定和b".希望这些选项也不令人满意吗?
交换两个变量而不使用临时变量if
int a=4;
int b=3;
Run Code Online (Sandbox Code Playgroud)
我需要交换这些变量并获得输出为a = 3和b = 4而不使用C#中的另一个变量
所有!请有人帮我解决这个任务.我需要交换变量值而不使用任何赋值符号.我尝试用while循环来做这件事,但我不能在任何地方存储计数器值.谢谢大家.