io sono confuso circa la CC di istruzione switchcomplessità ciclomatica dell'interruttore istruzione case
Se ho seguente codice:
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");
}
qual è la CC?
ho trovato a post detto che si tratta di 5, con questo schema
(i bordi sono 17, non 16, penso che sia un errore di battitura)
Si dice che abbiamo solo bisogno di contare caso 0 e custodia 1 come uno
Ma penso diagramma dovrebbe essere:
bordi: 17,
Nodi: 13,
17-13 + 2P = 6
io reputo tutti i casi come 1
Il mio professore OOSE ha detto che è 6, ma in modo diverso
Egli ha detto:
init => 1
if => 1
switch => 1
case 0 1 => 1
case 2 => 1
case 3 4 => 1
quindi dovrebbe essere 6
Qual è la risposta corretta?
Sono davvero confuso, grazie.
a cura:
Ora penso che sia . sì, 7
Perché se n è più di 5, non farà nulla e uscirà dall'istruzione switch.
allora riusciamo ad ottenere questo schema:
nuovamente nome = 18
18 - 13 + 2 =
Ho ragione ..?
davvero, davvero, davvero confuso ...
grazie per la tua risposta. Sto imparando sulla complessità ciclomatica e voglio solo sapere come calcolarlo. – CodinCat