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;
)时,我认为sum应为5,但实际输出为4.我在交互窗格中尝试了第12行,确实看到了sum=4
。我不明白。不应该x++
产生3(x = 2)并且如果这被添加到(int)q(双q给了我......如2.666666),我应该得到5.有人可以向我解释发生了什么吗? / p>
此外,在获得我的第一个输出后,我该怎么办? 下一个条件是:
if (x > 5)
p += 4 / 2;
else
p += 3 % 1;
因为x <5,我应该选择其他条件,对吗?
我的最后一个问题是,在使用p += 3%1
之后,我的p仍然是1,所以我会回到这个循环(因为p <12)或者我是否已退出此循环并继续执行第19行?我不知道该怎么做。
答案 0 :(得分:1)
答案 1 :(得分:0)
第一次3%1=0
p +=3%1
=&gt; p+=0
这就是为什么p仍然是1