1

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

返回会缩短分支中的代码,并产生更小的代码块。例如,

    int findBranchNumber(字符串输入){
        if ("branch1".equals(input)) {
            返回 1;
        }
        if ("branch2".equals(input)) {
            返回 2;
        }
        // ....
        返回-1;
    }

替代方案将使用方法变量(在这种情况下)或更大的块。阅读代码的人必须阅读整个方法,然后才能意识到只有前 3 行与“branch1”相关。

请指教 ...

4

1 回答 1

0

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

于 2017-04-07T16:20:42.153 回答