【发布时间】:2010-11-02 22:53:43
【问题描述】:
Bjarne Stroustrup(C++ 创建者)曾经说过,他避免使用“do/while”循环,而是更喜欢用“while”循环来编写代码。 [请参阅下面的报价。]
自从听到这个,我发现这是真的。你都有些什么想法呢?有没有一个例子表明“do/while”比使用“while”更简洁、更容易理解?
针对一些答案:是的,我理解“do/while”和“while”之间的技术区别。这是一个关于可读性和结构化代码涉及循环的更深层次的问题。
让我问另一种方式:假设你被禁止使用“do/while” - 有没有一个现实的例子让你别无选择,只能使用“while”编写不干净的代码?
来自“C++ 编程语言”,6.3.3:
根据我的经验,do-statement 是错误和混乱的根源。原因是它的主体总是在评估条件之前执行一次。然而,为了使身体正常工作,即使是第一次也必须保持与这种情况非常相似的东西。出乎我的意料,我发现无论是在程序第一次编写和测试时,还是在其前面的代码被修改后,这种情况都不会像预期的那样成立。 我也更喜欢“在我可以看到的前面”这个条件。因此,我倾向于避免使用 do 语句。 -Bjarne
避免 do/while 循环是包含在 C++ Core Guidelines 中的建议 ES.75, avoid do-statements。
【问题讨论】:
-
@brandaemon 代码审查在 09 年 6 月还没有出现。你到底是什么意思?
-
@brandaemon 这是一个非常糟糕的建议......
-
@brandaemon StackOverflow 或 Programmers.SE。代码审查仅适用于完全工作的代码,并且必须包含代码。这个问题没有任何代码。这使它偏离了代码审查的主题。
-
@brandaemon 请参阅a guide to Code Review for Stack Overflow users。
-
@brandaemon 我会花一些时间阅读this meta post,它在这个主题上相当广泛。它提供了很多关于 Programmers.StackExchange 上的主题问题的见解。希望也能有所帮助!