声纳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