I think flow control is one of the least understood topics in BASIC programming. You see FOR...NEXT loops all over the place when another looping structure is often much, much better.
As a refresher, here are the flow control commands in BASIC 7.0:
Used if you have a block of code that should be executed if a specified condition is met, but skipped if it is not.
A very flexible set of conditions for complex loops, as Hydrophilic so helpfully asserts above.
One of the two that everyone knows about and abuses terribly. Though you don't often see the very useful STEP.
The number one abused looping structure. Utilitarian, but sometimes like using a screwdriver as a hammer.
You see lots of GOSUBs, but not many ON conditionals. ON combines nicely with FOR...NEXT supplying the counter.
Not a flow control command, but RESTORE, especially to a line#, is a powerful and much-underused command.
Who does error trapping? Anyone? Anyone? Bueller?
Have your program STOP. Look at all the variable values. Change variable values based on your human judgement. CONT. Nice during development. See TRAP above.
You use this one if you write any ML.
Use your hardware! Fantastic with the CIAs.