关闭函数时返回与中断

Return vs break when closing a function?

本文关键字:中断 返回 函数      更新时间:2023-10-16

假设我有一个单一的-for loop函数;如果没有与机械相关的偏好,那么最好选择return还是break?或者它们会完全一样?

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

使用break将退出循环,而return实际上将完成该方法。因此,如果你的目标只是简单地停止循环,你可以使用break。但是,如果希望方法结束,请使用return。关于return和breaks的特殊情况,请参阅本文:ruby中的break和return,你是如何使用它们的?

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

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

但是,return的含义与break不同。Return表示您正在退出函数,而break只是退出循环。现在的结果可能是一样的,但当算法发生变化或需要进行一些后处理时,情况可能会发生变化。

在这种情况下,如果没有实际的代码,就不可能说什么更合适,甚至可能取决于意见。

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