// This rule specifies whether you are allowed to have
// complex expressions in loops.
// A complex expression is usually a method call which
// could be very time/resource intensive. Therefore you
// should assign the return value to a variable and
// check agains this.



...
ComplexObject co = new ComplexObject();

// this can be very time intensive
for (int i = 0; i < co.doCalculation(); i++})
{
    // do something
}

// this approach is better
int result = co.doCalculation();

for (int i = 0; i < result; i++})
{
    // do something
}

// or this one
for (int i = 0,
result = co.doCalculation();
     i < result; i++})
{
    // do something
}