我的代码为:
int good_practice(void)
{
if (somethings == TRUE)
return true; //i am asked to remove it coz it will reach anyhow at end and do same but i feels it is good practice and why should i wait for end?
else
return false
}
}
return true;
}
我被要求删除第一次返回,因为它最终会到达功能结束并返回true。这很好吗?
我觉得为什么我需要等待cpu进入功能结束并返回虽然我可以提前做。如果我决定以某种情况返回,为什么我应该从最后回来为什么不在那里为什么不等结束?
而且如果我等待结束,我会增加时间复杂度(我知道它不会有任何区别)但是没有增加指令。
请帮助我摆脱这种混乱?
答案 0 :(得分:2)
这被称为“早期回归”,我认为没有明确的共识。
优点:
缺点:
以前有一些类似的早期回归问题see here for example。
答案 1 :(得分:1)
系统会要求您删除第一个return true
,因为您可以像这样检查,而不会有额外的冗余return true
:
int good_practice(void) {
if(!somethings) {
return false;
}
return true;
}
无论如何,有问题的代码非常多余。
您可以使用更好的版本替换它,例如:
int good_practice(void)
{
return somethings;
}
关于早期回归:
通常最好在最后获得一次回报,因为通过返回仅,在早期返回时获得的性能远远不及获得的可读性。
(这只是我自己的经历)。