就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
8年前关闭。
当我在大学(80 年代中期)学习 CS 时,不断重复的想法之一是始终编写在顶部(while...)而不是底部(do...while)进行测试的循环环形。这些观点经常得到引用研究的支持,这些研究表明,在顶部测试的循环在统计上比在底部测试的循环更可能是正确的。
因此,我几乎总是编写在顶部进行测试的循环。如果它在代码中引入了额外的复杂性,我不会这样做,但这种情况似乎很少见。我注意到一些程序员倾向于几乎只编写在底部进行测试的循环。当我看到类似的结构时:
if (condition)
{
do
{
...
} while (same condition);
}
或相反的(
if
中的 while
),这让我想知道他们是否真的是这样写的,或者他们是否添加了 if
当他们意识到循环没有处理空情况时的语句。我已经做了一些谷歌搜索,但没有找到关于这个主题的任何文献。你们(和女孩)如何编写循环?
最佳答案
我总是遵循这样的规则,如果它应该运行零次或多次,则在开始时进行测试,如果必须运行一次或多次,则在最后进行测试。我没有看到使用您在示例中列出的代码的任何合乎逻辑的理由。它只会增加复杂性。
关于language-agnostic - 测试循环在顶部还是底部? (while vs. do while),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/224059/