帮助,我无法理解这一点.
int value = 0;
int i = 5;
value -= i;
Console.WriteLine("Test5 = " + value.ToString());
value -= i - 2;
Console.WriteLine("Test5 = " + value.ToString());
Run Code Online (Sandbox Code Playgroud)
我认为输出将是:
Test5 = -5 // value = 0 - 5
Test5 = -2 // value = -5 --5 -2
Run Code Online (Sandbox Code Playgroud)
为什么是正确答案:
Test5 = -5
Test5 = -8
Run Code Online (Sandbox Code Playgroud)
-8来自哪里?
泰
简单的数学.
int value = 0;
int i = 5;
value -= i;
Console.WriteLine("Test5 = " + value.ToString());
Run Code Online (Sandbox Code Playgroud)
在上面的代码之后,我们有以下值:
value = -5
i = 5
接下来,你这样做:
value -= i - 2;
Console.WriteLine("Test5 = " + value.ToString());
Run Code Online (Sandbox Code Playgroud)
哪个可以改写为(注意后面所有内容的括号-=):
value = value - (i - 2);
Run Code Online (Sandbox Code Playgroud)
i= 5,所以i - 2= 3.
-5 - 3= -8.
显然,括号并不存在.这只是的右侧-=(或+=,*=,/=,^=,等)进行评估,以一个单一的数字第一.