Расчет цикломатической сложности [псевдокод] - PullRequest
1 голос
/ 14 июля 2011

Цикломатическая сложность псевдокода ниже - "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? Мы считаем те заявления еще? Я в замешательстве.

EDIT: Случай 2: Что если у нас есть:

IF (x < y)
statment 1

IF (x < z)
statemnt 2

Какой будет цикломатическая сложность? 2? или 3?

1 Ответ

2 голосов
/ 14 июля 2011

Нет.Основной поток + 3 x 'If' s = 4

Из wiki :

Цикломатическая сложность части исходного кода - это счетот числа линейно независимых путей через исходный код.Например, если исходный код не содержит точек принятия решения, таких как операторы IF или циклы FOR, сложность будет равна 1, поскольку через код существует только один путь.

Если бы в коде был один оператор IF, содержащий одно условие, в коде было бы два пути: один путь, где оператор IF оценивается как TRUE, и один путь, где оператор IF оценивается как FALSE.

...