2

假设我有一个单一的for loop功能;最好选择return还是break没有与机械相关的偏好?或者他们会完全一样?

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

3 回答 3

6

使用 break 将退出循环,而 return 将实际完成该方法。因此,如果您的目标是简单地停止循环,则可以使用 break。但是,如果您希望方法结束,请使用 return。有关返回与中断的特殊情况的一些附加评论,请参阅此帖子:ruby 中的中断和返回,您如何使用它们?

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

于 2013-08-24T20:09:56.527 回答
3

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

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

如果没有实际的代码,在这种情况下更合适的说法是不可能的,即使那样也可能取决于意见。

于 2013-08-24T20:11:15.233 回答
1

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

于 2013-08-24T20:14:47.517 回答