On Sun, 12 Jan 2003 14:59:57 EST, Rob Wilkens said: > In general, if you can structure your code properly, you should never > need a goto, and if you don't need a goto you shouldn't use it. It's > just "common sense" as I've always been taught. Unless you're > intentionally trying to write code that's harder for others to read. Now, it's provable you never *NEED* a goto. On the other hand, *judicious* use of goto can prevent code that is so cluttered with stuff of the form: if(...) { ... die_flag = 1; if (!die _flag) {... Pretty soon, you have die_1_flag, die_2_flag, die_3_flag and so on, rather than 3 or 4 "goto bail_now;". The real problem is that C doesn't have a good multi-level "break" construct. On the other hand, I don't know of any language that has a good one - some allow "break 3;" to break 3 levels- but that's still bad because you get screwed if somebody adds an 'if' clause....