我正在努力理解以下内容为何返回此值的原因。任何帮助将不胜感激。
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
因此,(ans + = 12)= 22?
答案 0 :(得分:1)
v2-- / 5)= 1.4
,这是您的问题。整数除法将从不返回非整数值。
1/2
等于0
,不等于0.5
,而7/5
等于1
,不等于1.4
。
答案 1 :(得分:0)
马丁:步骤1是错误的,因为两个变量都是整数,结果将是一个整数(v2-- / 5)=1。要得到1.4的答案,需要将变量更改为double类型。 “所以实际上您只剩下10 + = 5 + 10 * 1 + 3 = 28”