澄清Cyclomatic Complexity的手动计数

时间:2016-08-20 15:00:17

标签: java metrics code-metrics cyclomatic-complexity

我们假设我们有这样的代码:

switch(y)
{
case 1: case 2: case 3:
    function();
    break;
case 4: case 5: case 6:
    function_2();
    break;
}

我们可以将CC值设为6 + 1吗?为什么添加值1?如果CC值被认为是7,那么是独立路径的数量吗?

如果考虑到跌倒情景怎么办?因为只有可能的两条独特路径,2 + 1 = 3

上述哪一项是正确的还是两者都正确?

1 个答案:

答案 0 :(得分:1)

众所周知,CC = P+1.

这里,P =谓词节点数(条件)= 2

条件数量为2,因为:

  

案例分支可以涵盖多个替代值或范围,例如   案例1,2,5至10.因为他们没有引入额外的分支来决定   在,它们也不会增加圈复杂度。

来源:here

所以,CC = 2 + 1 = 3