Weil das break fehlt. Ohne das Fängt er bei NULL an und arbeitet sich nach unten durch. Ohne Break werden ALLE Anweisungen nach dem Einsprungpunkt dis zum Blockende ( } ) ausgeführt.
Schreib deine Funktion mal so wie PicNick gepostet hat.

Hier kannst du es nochmal genau nachlesen:
http://www.pronix.de/pronix-686.html

mfg
Thorsten