首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在while循环中嵌套while循环和在while循环中嵌套if-else循环有什么显着区别吗?(C++)

在while循环中嵌套while循环和在while循环中嵌套if-else循环有什么显着区别吗?(C++)
EN

Stack Overflow用户
提问于 2009-11-29 05:42:01
回答 8查看 327关注 0票数 0

编辑:我忘了添加第二段代码的循环部分。

查看这两种代码样式

代码语言:javascript
运行
复制
while(some_loop_cont_val)
{
    while(pre_x is not done)
    {
        //do action pre_x
    }
    //do action x
}

代码语言:javascript
运行
复制
while(some_loop_cont_val)
{
    if(pre_x is not done)
    {
        //do action pre_x
    }
    else
    {
        //do action x
    }
}

第一个循环做pre_x (可能是一个迭代动作),然后是x,第二个循环做pre_x的一部分,如果没有做完,继续做,直到完成,然后做x,所以都做pre_x,然后做x。

我想知道两者之间是否有任何差异,无论是在效率方面,还是在其他方面(例如:是否有一些很少出现的微妙效果,等等),或者是否有任何理由在特定情况下使用一种而不是另一种,或者这只是一个偏好问题。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-11-29 06:00:17

内部循环中的

  1. break语句不允许退出外部循环。因此,您将错过一些由break/continue语句引入的有用功能。比较:

while(some_loop_cont_val) { if(some_det) { break;}} //"break“将您带到此处

while(some_loop_cont_val){ while(some_det) { break;} //"break“将你带到这里}

  • 另外一件事是"while”循环至少需要两次比较:在第一次迭代中输入它,而在第二次迭代中不输入它。
票数 1
EN

Stack Overflow用户

发布于 2009-11-29 05:54:56

在第一个示例中,第二个while循环实际上可能会循环。

第二个示例有条件地提交两个不同的操作。

票数 4
EN

Stack Overflow用户

发布于 2009-11-29 05:59:47

请,请不要担心这些东西的效率!

action代码必须几乎为,您才会注意到其中的差异。

如果它几乎为零,分析显示程序计数器在该循环中花费的时间超过其时间的10%,那么就需要担心它的效率。然后,如果您愿意,您可以展开循环或执行其他智能操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1813860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档