E' una questione "filosofica"!
Non ha molto senso considerare la rappresentazione a basso livello della condizione, cioe' contare gli AND/OR.
Wikipedia a' un buon punto di partenza, ma NON E' LA BIBBIA!
I motivi sono ""banali"":
1) AND e OR sono DUE possibili funzion booleane, ma non sono le uniche, c'e' lo XOR, ad esempio, le costanti, ecc Ci sono 16 POSSIBILI funzioni booleane a 2 valori
2) SE la condizione viene spostata in una funzione separata, OPPURE viene calcolata PRIMA dell'IF e poi assegnata ad una variabile booleana, ed il test viene fatto sulla variabile, CAMBIA la complessita' ciclomatica! Ma non ha senso, perche' il codice e' SEMPRE LO STESSO solo scritto in modo leggermente diverso..
Bisogna tenere presente un paio di cose:
1) il teorico ragiona in termini assoluti e fa degli esempi mooolto semplici
2) la pratica deve fare i conti con la realta', con codice scritto con i ""piedi"" , e deve essere ragionevolmente ""stabile""
3) i valori di complessita' non sono assoluti, ma vanno ""contestualizzati"" e poi confrontati NON per valore assoluto, ma, in generale, come ""rapporto"".
Ovviamente, per poter fare i confronti, bisogna usare sempre la stessa definizione.
Ci sono tool che calcolano la complessita ciclomatica di codice java
https://stackoverflow.com/questions/30005793/java-tool-for-calculating-cyclomatic-complexity
Diversi tool NON danno gli stessi ESATTI valori. Ma non e' importante, perche' basta che i valori siano ""confrontabili"" quando si usa sempre lo stesso tool.