I just found this...
A while loop might never execute a statement if the expression is false but a do while will always execute the statement at least once.
Sounds logic, since your first example does something and checks an expression after that while your first example first checks if it needs to do something.
Here is the link I found:
http://cplus.about.com/od/learningc/ss/clessonfive_4.htm[
^]