关闭函数时返回vs中断?

时间:2013-08-24 20:05:55

标签: c++ for-loop

假设我有一个 - for loop函数;如果没有与机械相关的偏好,最好选择returnbreak吗?或者他们会完全一样?

void function()
{
  for (int i; i<foo; i++)
     {
         if (something)
            // return? break?
     }
  // nothing else after this
}

3 个答案:

答案 0 :(得分:5)

使用break将退出循环,而return实际上将完成该方法。因此,如果您的目标是简单地停止循环,则可以使用break。但是,如果希望方法结束,请使用return。有关返回与休息的特殊情况的一些其他评论,请参阅此帖子:break and return in ruby, how do you use them?

******** ******** EDIT 在这种情况下,除非在函数中的for循环下有更多代码,否则它们的工作方式完全相同。如果是这种情况,请使用break来命中该代码。

答案 1 :(得分:3)

就生成的代码而言,您可以预期它们在这种情况下完全相同。

但是,返回与具有不同的含义。返回意味着您正在退出该函数,而break只是退出循环。结果现在可能相同,但是当算法更改或需要进行一些后处理时,这可能会改变。例如。

在没有实际代码的情况下,在这种情况下更合适是不可能的,即便如此,也可能取决于意见。

答案 2 :(得分:1)

在这种情况下,我更愿意使用break。要求可能会随着时间而变化 有一天你可能需要在循环后添加另一段代码。然后,早 return可能是一个等待发生的错误,特别是如果早期循环退出 对于罕见且难以测试的情况。