Break loop correctly

The break statements in the loop just break the switch and not outer loop.  The tag allows the break statements to actually break the loop and stop unnecessary loops.

http://golang.org/doc/effective_go.html#switch
I think you should `continue` here and remove `else` below.