In reply to sbellock:
Note that for repeat loops the expression is evaluated only once at the beginning of the loop, although the LRM doesn’t explicitly say this.
Thanks. So, I assume, for other loop types, this is done at the start of each iteration.