I like the gabrielh's vote to put the conditional at the end:
foo = 1 if bar;
I'd also like to suggest my favorite looping construct from Pick Basic (yes Basic):
loop { x = doSomething(); } while (!x) { doSomethingElse(); }
putting the test in the middle of the loop allows you to dispense with any setup code for the loop that has to be repeated within the loop -- it all goes before the test and will be executed again for each iteration.