Расчет цикломатической сложности [псевдокод]

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

РЕДАКТИРОВАТЬ: Случай 2: Что делать, если у нас есть:

IF (x < y)
statment 1

IF (x < z)
statemnt 2

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

1 ответ

Решение

№ Основной поток + 3 х 'If= 4

Из вики:

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

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

Другие вопросы по тегам