当我在大学(80 年代中期)学习 CS 时,不断重复的想法之一是始终编写循环测试在顶部(while...)而不是底部(do ...while)环形。这些概念经常得到研究参考的支持,这些研究表明,在顶部测试的循环在统计上比底部测试的循环更可能是正确的。
结果,我几乎总是编写在顶部进行测试的循环。如果它在代码中引入额外的复杂性,我不会这样做,但这种情况似乎很少见。我注意到一些程序员倾向于几乎专门编写在底部进行测试的循环。当我看到如下结构时:
if (condition)
{
do
{
...
} while (same condition);
}
或者相反(if
在内部while
),这让我想知道他们是否真的是这样写的,或者if
当他们意识到循环没有处理空情况时他们是否添加了语句。
我已经进行了一些谷歌搜索,但无法找到有关此主题的任何文献。你们(和女孩)如何编写循环?