Ich bin verwirrend über die CC der switch-Anweisungzyklomatische Komplexität von Schalt case-Anweisung
Wenn ich folgenden Code haben:
if (n >= 0) {
switch(n) {
case 0:
case 1:
printf("zero or one\n");
break;
case 2:
printf("two\n");
break;
case 3:
case 4:
printf("three or four\n");
break;
}
}
else {
printf ("negative\n");
}
was ist der CC?
Ich fand a post sagte, dass es 5 ist, mit diesem Diagramm
(die Ränder 17 sind, nicht 16, ich denke, es ist ein Tippfehler)
Er sagt, dass wir müssen nur Fall Anzahl 0 und Fall 1 als ein
Aber ich denke, sollte das Diagramm sein:
Kanten: 17,
Knoten: 13,
17-13 + 2P = 6
zähle ich alle Fälle als 1
Mein OOSE Professor sagte, es ist 6, aber in anderer Weise
Er sagte:
init => 1
if => 1
switch => 1
case 0 1 => 1
case 2 => 1
case 3 4 => 1
so sollte es sein 6
Was ist die richtige Antwort?
Ich bin wirklich verwirrt, danke.
bearbeitet:
Jetzt denke ich, es ist. ja, 7
Weil, wenn n mehr als 5 ist, wird nichts tun und die switch-Anweisung beenden.
dann bekommen wir dieses Diagramm:
jetzt E = 18
18 - 13 + 2 =
bin ich richtig ..?
wirklich, wirklich, wirklich verwirrt ...
Danke für deine Antwort. Ich lerne etwas über Cyclomatic Complexity und möchte nur wissen, wie ich es berechnen kann. – CodinCat