NOt that I'm a proponent of it, but the "one exit" concept is supposed to aid in refactoring your code; i.e., it makes it easier to cut-and-paste when you are changing your code. Personally, I am not a fan of the "one exit" concept, although "n-exits" I find are particularily obnoxious to read. As such, I tend to have a 2.5-exit concept:
1 exit at teh beginning of the function. This evaluates whenther or not the function has to run. (Note that theoretically this should be a separate function, but sometimes it doesn't make sense as such...)
This usually is a return statement, but sometimes this should throw a java.lang.IllegalArgumentException, depending on the situation.
1 exit at the end of the function. (I always include a "return;" even when the method's return type is void. One of my idiosyncracities...)
These make the two exits. The extra .5 come from the fact that sometime it is necessary to exit in the middle of a for-loop (or other control structure).
Likewise, I don't understand those that eschew breaks and continues in thier loops. Like my return statements, I usually have these near the beginning of the loops (or the end in the case of the break; it dosen't really make sense to have a continue at the end of your loop--unless you want to be consistant in use of redundant statements, like my return above
)