C ++中while和do while循环之间的区别

时间:2015-12-26 13:39:31

标签: c++ loops

任何人都可以告诉我在c++中while循环和while循环之间的基本差异(在效率方面)吗? 我试图通过网络搜索它,但找不到确切的答案。

3 个答案:

答案 0 :(得分:3)

在效率方面没有区别。两者都相当于条件评估和条件跳转。

答案 1 :(得分:0)

如果优化器没有插入冗余代码,则由于需要额外的跳转,顶部检查循环会变慢。如果优化器确实插入了冗余代码,那么由于冗余代码本身以及缓存影响,顶部检查循环将会非常慢。

如果正确的行为是身体至少被执行一次,则顶部检查的循环效率较低(更多比一次额外执行该条件的成本更低)。但这通常不是基于效率选择底部检查的理由。选择使代码对于人类维护者更容易理解的那个。

程序员习惯于在第一遍中查看while循环(顶部检查循环),其中条件非常简单(从人的角度来看)。在上面检查循环仍然更可读。如果第一遍非常简单,即使编译器看到它(发生的频率低于您猜测的频率),那么实际上没有效率差异。

通常,您想要测试的条件甚至无法计算直到循环一次。然后我发现底部检查循环更具可读性。对条件进行虚拟输入以便最重要地检查某些事情的常见做法只会令人分心。

答案 2 :(得分:-1)

do while循环确保循环体至少执行一次。

这取决于你需要多少使用它,我看到了你需要使用do while循环的好例子

  

也许你已经编写了一个运行动画的图形程序。当游戏结束时,您需要向玩家展示记分牌。当然,您需要至少运行一次动画循环才能渲染记分板。所以:在循环中运行你的动画并在结束时执行条件,看看你是否应该停止动画,因为游戏结束了。

相关问题