在检查多个描述/博客/教程时,我仍然无法获得如何计算嵌套IF的McCabe指标。例如,对于以下伪代码。
IF (CHECK_A() && CHECK_B() && CHECK_C()) {
DO_SOMETHING()
}
此代码也可以编写如下,代表相同的逻辑。
IF (CHECK_A()) {
IF (CHECK_B()) {
IF (CHECK_C()) {
DO_SOMETHING()
}
}
}
我假设这导致以下控制流程图:http://i.stack.imgur.com/C6X28.png
现在,通过V(G) = e − n + 2p
计算圈复杂度,而e
是边缘数,n
是节点数,p
是节点数#有退出点。查看图表,e = 7
,n = 5
和p = 1
,因此V(G) = 7 − 5 + 2 * 1
= 4
。有人能告诉我这是否是正确的计算方法?