Давайте предположим, что у нас есть такой код:Разъяснение ручной подсчет цикломатической сложности
switch(y)
{
case 1: case 2: case 3:
function();
break;
case 4: case 5: case 6:
function_2();
break;
}
Можем ли мы получить значение CC, как 6 + 1 здесь? Почему добавляется значение 1? Если значение CC считается равным 7, является ли число независимых путей?
Что делать, если сценарий падения рассматривается выше? Поскольку возможны только два уникальных пути, 2 +1 = 3
Какое из перечисленных выше верно или они оба правильные?
Есть три (различные) пути через этот переключатель, а не две. – khelwood
7-й случай, когда 'y' не является ни 1, 2, 3, 4, 5, ни 6. –
Чтобы ответить на вопрос, я бы сказал, что CC должен быть определен с точки зрения логического выполнения кода, а не того, что процессор (и мы даже не знаем, что он будет делать большую часть времени). Нам все равно, будет ли '2' посещать меньше случаев« switch », потому что мы определенно знаем, что в итоге он достигнет того же состояния, что и' 3'. У меня есть сильное предпочтение говорить, что CC здесь 3: – Dici