Goto is only evil if used incorrectly.  I have no problem using it to break out of a nested loop.  Actually it's the only place I would use it..