Влияет ли время на цикломатическую сложность?
Например, я получил код:
int a = 3;
if(a < 0)
{
System.out.println(“a < 0");
}
else if (a == 0)
{
System.out.println(“a == 0");
}
else
{
do{
System.out.println(“Loop never end");
}while(true)
}
return a;
Цикломатическая сложность, которую я вычислил, равна 4. Но я могу найти только 3 независимых пути, так как есть только один независимый путь, который делает, что не так?
1 ответ
Вы начинаете с 1. Во-первых, если увеличивает его до 2. Во-вторых, если увеличивает его до 3. В то время как (условие) увеличивает его до 4. Упрощенное объяснение: метрика CC дает вам верхний предел возможных путей выполнения, вычисление не принять во внимание тот факт, что условие в цикле while всегда выполняется.