My teacher in the C++ language told me to use the canonical forms: for(int x=0; x != 5; ++i)
Thou the other works just fine but suppose you want to use the loop on a iterator. Then <= does not has to be properly defined and a postfix inc might make your program spend alot of time copying objects.
So he made us use the forms
for(int i=begin; x != end; ++i)
and for(int i=begin; end != i--; )