【发布时间】:2014-06-17 03:42:16
【问题描述】:
我正在做一些练习,但我对此感到困惑:
public static int f (int x, int y) {
int b=y--;
while (b>0) {
if (x%2!=0) {
--x;
y=y-2;
}
else {
x=x/2;
b=b-x-1;
}
}
return x+y;
}
b=y-- 的目的是什么?
例如,x=5 和 y=5
当我们第一次进入 while 循环 (while (b>0)) 时,b = 4 还是 5?当我在我的计算机上运行代码时b 是 5。返回是 3。我真的不清楚。抱歉,如果我的问题不清楚。
【问题讨论】:
-
了解运算符优先级和前置/后置递增/递减运算符。
-
在调试器中跟踪代码可能会很有帮助,因为您可以在每一步检查每个变量。