2016-11-07 65 views
0

所以我想弄清楚,如果蓝线是在正确的地方,我知道我应该有9个边缘,但不知道它是否正确。圈复杂边

代码

public int getResult(int p1, int p2) { 
int result = 0; // 1 
if (p1 == 0) { // 2 
    result += 1; //3 
} else {  
    result += 2; //4 
} 
if (p2 == 0) { //5 
    result += 3; //6 
} else { 
    result += 4; //7 
} 
    return result; //8 exit node 
} 

所以8个节点和它应该有9层的边缘,是吗?我做对了吗?

enter image description here

回答

1

是的,蓝线是正确的,因为之后3号线放置,你的程序将跳转到5日线。 计算圈复杂度没有得出任何流程图最简单的方法如下:

  1. 计算所有的回路中的程序,同时,这样做,而如果。为每个循环分配一个值1。否则不应计算在这里。
  2. 为每个开关盒指定1的值。这里不应该计算默认情况。
  3. 圈复杂度=循环总数+ 1 在你的程序中,有2个,如果回路,所以圈复杂度将是3(2 + 1)

您可以用标准的交叉检查可用的公式以及其是如下: C = E-N + 2(9-8 + 2 = 3)

OR

C =封闭区域的数量+ 1(2 + 1 = 3)

+0

只需要知道,如果蓝线被放置正确,谢谢。 – t1ms0n

0

根据wikipedia

M =ë - N + 2P,其中

E =曲线图的边的数量。 N =图的节点数。 P =连接组件的数量。

这样:

9 - 8 + 2*1 = 3