多次退货是不好的做法吗?

问题描述 投票:1回答:1

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

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

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

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

请指教 ...

multiple-return-values
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.