【发布时间】:2014-11-01 11:45:02
【问题描述】:
这是我的自学作业之一。
我应该写下这个程序的输出而不实际运行它。 我了解这里的所有语法和变量传递,(并且我有答案)但由于某种原因,在纸上追踪它是行不通的。
有什么秘密的图表技术可以让一切井井有条吗?
对于有经验的程序员来说,手工解决这个问题只是儿戏吗?
谢谢
public class Mystery extends ConsoleProgram {
public void run() {
ghost(13);
}
private void ghost(int x) {
int y = 0;
for (int i = 1; i < x; i *= 2) {
y = witch(y, skeleton(x, i));
}
println("ghost: x = " + x + ", y = " + y);
}
private int witch(int x, int y) {
x = 10 * x + y;
println("witch: x = " + x + ", y = " + y);
return x;
}
private int skeleton(int x, int y) {
return x / y % 2;
}
}
【问题讨论】:
-
我确信我能弄明白,但作为一个有经验的程序员,我会编写单元测试并更改代码直到它通过。如果您发现这段代码令人困惑,这并不是您有什么问题,它似乎是为了混淆。
-
我认为唯一令人困惑的是
y的值,如果您是一位经验丰富的程序员,这并不是第一次(少数)通过时看起来的那样(es )。
标签: java trace diagramming