[英]Order of operations c#
我正在努力理解以下內容為何返回此值。 任何幫助,將不勝感激。
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?
v2-- / 5)= 1.4
,這就是您的問題。 整數除法永遠不會返回非整數值。
1/2
等於0
,而不是0.5
而7/5
等於1
,而不是1.4
。
Martin:步驟1是不正確的,因為兩個變量都是整數,結果將是整數(v2-- / 5)=1。要得到1.4的答案,則需要將變量更改為double類型。 “因此,實際上剩下10 + = 5 + 10 * 1 + 3 = 28”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.