public class Task {
public static void main(String args[]) {
int x = 0, p = 0, sum = 0;
p = 1;
x = 2;
double q;
sum = 0;
while (p < 12) {
q = x + p - (sum + 5/3)/3.0 % 2;
sum = sum + (x++) + (int) q;
System.out.println(sum);
if (x > 5)
p += 4/2;
else
p += 3 % 1;
}
sum = sum + p;
System.out.println(sum);
}
}
雖然在進行線12(sum = sum + (x++) + (int)q;
)我想總和應爲5,但有些問題實際上輸出4.我試圖線12相互作用窗格中,確實看到了sum=4
。我不明白。不應該x++
產生3(x = 2),如果這被添加到(int)q(雙q讓我像2.666666),我應該得到5.有人可以向我解釋發生了什麼?我有一個關於這個追蹤
此外,獲得我的第一個輸出後,我應該如何繼續? 接下來的條件是:
if (x > 5)
p += 4/2;
else
p += 3 % 1;
因爲x < 5,我應該去的其他條件,對不對? 我最後一個問題是,在使用p += 3%1
後,我的p仍然是1,那麼我是否會返回到這個循環(因爲p < 12),還是我退出循環並繼續到第19行?我不知道該怎麼做。
x會在總和的歸屬後增加。 – Gunner
感謝您的反饋。但我仍然不明白爲什麼sum = 4而不是5。你能再解釋一下嗎? – Hades
x ++(遞增)在當前指令之後完成,所以當計算總和時x是2。之後,它將變爲3. – Gunner