Because a normal loop checks size every time it loops (as it may change during loop)
Compiler might optimize this and normally this isn't really critical. But this function is called 640*480 times per comparison, so every millisecond counts :+1: 

Example:
```cs
for (int i = 0; i < SomeObject.SomeCountFunction(); i++)
{
    // manipulate the object => it will change the evaluation of next round
}
```

```cs
for (int i = SomeObject.SomeCountFunction(); i >= 0; i--)
{
    // Manipulate the object => it will not change evaluation of next round.
    // This is because i is set once and then counts down to zero
}
```