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