it's a bit like goto. everyone bangs on about "don't use got". almost every set of company coding standards i've ever seen forbid them. and fair enough, you never need to use goto. there's always another way. but then, every time you do switch, break, continue, if, else, for, while... you're really just doing a goto. they all compile to some sort of JMP instruction. you can screw up with any of them.