The complexity of an expression is defined by the number of &&
, ||
and condition ? ifTrue : ifFalse
operators it contains.
A single expression's complexity should not become too high to keep the code readable.
The following code, with a maximum complexity of 3:
if (condition1 && condition2 && condition3 && condition4) { /* ... */ } // Non-Compliant
could be refactored into something like:
if (relevantMethodName1() && relevantMethodName2()) { /* ... */ } // Compliant /* ... */ private boolean relevantMethodName1() { return condition1 && condition2; } private boolean relevantMethodName2() { return condition3 && condition4; }