2013-08-23 23 views
0

什么是最快,最安全和最实用的处理条件内的条件的方法,其中条件匹配必须在函数可以继续执行任何代码之前通过?下面我有一个条件失败则返回功能,与其他功能只检查了成功的条件:处理函数内部条件的哪种方法最实用?

function x() 
{ 
    if (!condition) return; 

    [code] 
} 

或者

function y() 
{ 
    if (condition) 
    { 
     [code] 
    } 
} 
+0

是什么让你认为(a)它很重要或(b)一个会比另一个更快? –

+0

我个人比较喜欢第二种方法。当然,除非你的陈述嵌套得太深。如果您的语言支持,则使用第一种方法或“继续”。这实际上取决于具体的代码。 – vroomfondel

+0

速度不会产生足够大的影响,两者同样安全,两者基本同等实用。这一切都归结为个人喜好,我更喜欢第一个。 – Dukeling

回答

0

McCabe's cyclomatic complexity惩罚功能与多个return语句。我想提供支持structured programming(每个函数的一个入口点/ "Goto Statement Considered Harmful")的极端形式,即每个函数的一个出口点。

减少函数中返回语句的数量,可以减少要检查函数局部变量的最终值的调试情况下要插入的断点的数量。

如果您的开发方法需要频繁使用调试器,那么您可能会争论使用y()方法。

+0

我认为'x'对于调试更好(只要你将它分成2行),因为它是一个**初始**检查,你很不可能想要评估变量的最终值。我遇到过许多场景,其中'''结构可以帮助,而没有'''结构可以帮助的地方(是的,没有)。 – Dukeling