我在大学学习计算机科学时(80年代中期),经常听到一个观点,即始终编写在循环顶部进行测试的循环(while...),而不是在底部进行测试的循环(do ... while)。这些观点通常会引用研究结果来支持,表明在顶部进行测试的循环比底部测试的循环更有可能正确。
因此,我几乎总是编写测试在顶部的循环。除非它会在代码中引入额外的复杂性,但这种情况似乎很少见。我注意到一些程序员倾向于几乎专门编写测试在底部的循环。当我看到像下面这样的结构时:
if (condition)
{
do
{
...
} while (same condition);
}
对于反向的情况(if
在while
内),我想知道他们是否确实是以这种方式编写的,还是当他们意识到循环不能处理空情况时,才添加了if
语句。
我已经搜索了一些资料,但没有找到关于这个主题的文献。你们如何编写循环?