Complex code can perform poorly and will, in any case, be difficult to understand and therefore to maintain.
The following constructs increase the complexity of a function or procedure:
if
case
loop