Supposons que nous avons un code comme ceci:Clarifier le comptage manuel de complexité cyclomatique
switch(y)
{
case 1: case 2: case 3:
function();
break;
case 4: case 5: case 6:
function_2();
break;
}
Pouvons-nous obtenir la valeur CC que 6 + 1 ici? Pourquoi une valeur de 1 est ajoutée? Si la valeur CC est considérée comme 7, est-ce le nombre de chemins indépendants?
Et si un scénario d'effondrement est considéré ci-dessus? Comme il n'y a que deux chemins uniques possibles, 2 +1 = 3
Lesquels sont corrects ou sont-ils tous les deux corrects?
Il y a trois chemins distincts() à travers ce commutateur, pas deux. – khelwood
7e cas est quand 'y' n'est ni 1, 2, 3, 4, 5 ni 6. –
Pour essayer de répondre à la question, je dirais que CC doit être défini en fonction de ce que le code fait logiquement, et non du processeur va effectivement faire (et nous ne savons même pas ce qu'il fera la plupart du temps). Nous nous en fichons si le '2' va visiter moins de cas de' switch' car nous savons pertinemment qu'à la fin il atteindra le même état que le '3'. J'ai une forte préférence pour dire que le CC est 3 ici – Dici