The complexity of an expression is defined by the number of AND
, OR
.
A single expression’s complexity should not become too high to keep the code readable.
Noncompliant code example
With the default threshold value of 3
C IF (condition1 AND condition2)
C OR (condition2 AND condition2)
C OR (condition3 AND condition4)
/free
IF A=X OR A=Y AND A=Z AND B=Y OR B=Z;
...
ENDIF;
/end-free
Compliant solution
C IF (condition1 AND condition2)
C OR MyComplexCondition()
/free
IF A=X OR MyComplexCondition() OR B=Z;
...
ENDIF;
/end-free