1

下面伪代码的圈复杂度为“4”。

Read A
Read B
IF A > 0 THEN
     IF B  = 0 THEN
    Print “No values”
     ELSE
    Print B
    IF A > 21 THEN
        Print A
    ENDIF
     ENDIF
ENDIF

我们如何计算它?听说是条件数+1?我们计算那些 else 语句吗?我很困惑。

编辑:案例2:如果我们有:

IF (x < y)
statment 1

IF (x < z)
statemnt 2

圈复杂度是多少?2?还是3?

4

1 回答 1

2

编号 主流 + 3 x ' If's = 4

维基

一段源代码的圈复杂度是通过源代码的线性独立路径的数量的计数。例如,如果源代码不包含诸如 IF 语句或 FOR 循环之类的决策点,则复杂度将为 1,因为通过代码只有一条路径。

如果代码具有包含单个条件的单个 IF 语句,则将有两条路径通过代码,一条路径将 IF 语句评估为 TRUE,另一条路径将 IF 语句评估为 FALSE。

于 2011-07-13T23:56:36.163 回答