In the first form, do_stuff is executed at least once even if the condition is false.
In the second form, the do_stuff code is not executed at all if the condition is false.
Turns out I tend to use the second form more.
Of course I can do that but it's not what I would call elegant.
Reason for the rant is I am just done converting a fairly large piece of VB 6.0 code that had a lot of these and I was not too happy about having to deal with that.
On the other hand, B4J is just so much nicer in so many other aspects that I am still way ahead. The new code is probably half the size and twice as maintainable.
Nevertheless, I shall complain...