这是关于使用跟踪表来帮助简单算法的干运行的基本问题。
我觉得最棘手的是何时在跟踪表中添加新行?例如,请考虑以下问题:
以下跟踪表显示为完成干运行。这是解决方案:
我理解初始化变量 Number , Lower & Upper 出现在第一行,但是当我进入While循环时,我很想将值 5 放在第一行 ,对于变量 Current 。从本质上讲,这是我想要做的事情:
为什么此解决方案要求Current的值(即5)出现在第二行?我想这个问题可以改为'我什么时候在跟踪表中换一个新行?'
感谢。
答案 0 :(得分:2)
我认为跟踪表没有特定的方法,这意味着您必须在工作之前设置规则并继续。
考虑这个例子:
您是否注意到每个循环迭代器之间的区别。在第一个例子中,他们将迭代器的初始化值放在第一行,在第二个例子中,他们将循环迭代器的初始化放在第二行。
另外看看wiki他们也把循环初始化放在第二行
同样this video和我在这里发布的例子类似,并且总是在第二行开始循环迭代器。
另外,this示例具有完全不同的方法,即跟踪表中新行中的每行代码
您还可以找到跟踪表here
在我看来,选择对你有意义的规则,例如:
1-first行将包含变量的默认值
2关于循环迭代,将循环迭代器放在与受此迭代影响的变量相同的行中,就像我上面发布的第二个例子。
关于你的问题,我认为将第二行中的当前第一个值5放得更清楚,这样你就可以清楚地跟踪每个循环迭代对变量的影响。