## Why is this an issue?

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.

### Noncompliant code example

With the default threshold value of 3:

    if (((condition1 && condition2) || (condition3 && condition4)) && condition5) { ... }

### Compliant solution

    if ( (myFirstCondition() || mySecondCondition()) && myLastCondition()) { ... }

### Exceptions

No issue is reported inside `equals` methods, because it is common to compare all the fields of a class for equality inside this kind of method.