关闭函数时返回与中断
Return vs break when closing a function?
假设我有一个单一的-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
可能是一个等待发生的错误,特别是如果早期循环退出对于一种罕见且难以测试的情况。
相关文章:
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- 什么时候在C++中返回常量引用是个好主意
- 你能重载对象变量名本身返回的内容吗
- 为什么 Serial.println(<char[]>);返回随机字符?
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何获取std::result_of函数的返回类型
- QueryWorkingSet总是返回false
- (C++)分析树以计算返回错误值的简单算术表达式
- 如何为伺服电机创建中断或返回值?
- 使用 Libusb 1.0 发送中断传输会返回LIBUSB_ERROR_IO,但在接收时不会
- 移动返回对象的构造函数会中断C++98 代码?
- 返回可中断线程的函数
- 从函数返回类型中删除常量是否会中断 ABI
- Win32 消息循环 - 我应该中断还是返回
- PEM_read_RSA_PUBKEY返回并中断应用程序
- 返回内部循环以C++中断循环
- 关闭函数时返回与中断
- 你需要在返回false后中断吗
- 从main返回0会中断我的程序
- 循环未给出预期答案-不确定退出/返回/中断