【发布时间】:2018-11-10 08:36:05
【问题描述】:
我很难理解为什么下面会返回这个值。任何帮助将不胜感激。
int ans = 10, v1 = 5, v2 = 7, v3 = 18;
ans += v1 + 10 * (v2-- / 5) + v3 / v2;
Console.WriteLine(ans);// prints 28
我的想法首先是括号,除法,乘法,然后是加法。所以步骤是: v1 + 10 * (v2-- / 5) + v3 / v2
- (v2-- / 5)= 1.4,然后将 v2 设置为 6。
- v3 / v2 = 3
- 10 * (v2-- / 5) = 14
- 5 + (14) +(3) = 12
因此,(ans += 12) = 22?
【问题讨论】:
-
我见过这个,但我不确定我哪里出错了。就该表而言,我的逻辑不正确吗? :msdn.microsoft.com/en-us/library/2bxt6kc4.aspx
-
你的第一个假设是不正确的。
?(v2-- / 5)= 1 而不是 1.4,因为它会产生一个整数结果 -
所以你实际上只剩下
10 += 5 + 10 * 1 + 3=10 += 5 + 10 + 3= 28 -
谢谢马丁。应该已经调试了... X_X