多次返回是一种不好的做法吗?



声纳Lint 规则"方法不应该太复杂"(squid:MethodCyclomaticComplexity(有一个在程序块中使用多个返回语句的示例。(有关循环复杂度计算规则,请参见 https://groups.google.com/forum/#!topic/sonarqube/BtvGoF6Tw7E(

返回值缩短了分支中的代码,并导致较小的代码块。例如

   int findBranchNumber(String input( {        if ("branch1".equals(input(( {            返回 1;        }        if ("branch2".equals(input(( {            返回 2;        }       //....        返回 -1;    }

替代方法将使用方法变量(在本例中(或更大的块。读取代码的人必须阅读整个方法,然后才能意识到只有前 3 行与"branch1"相关。

请指教...

我个人按照您在示例中显示的那样做。仅当您分配资源(例如文件打开、内存分配等(并且需要在从函数返回时释放它时才要小心。在这种情况下,可以使用第一个答案中描述的goto线租用技巧 https://stackoverflow.com/a/245761

相关内容

  • 没有找到相关文章

最新更新