Switch nicht durchfallen lassen

Thema:

Douglas Crockford gibt im Yahoo! Interace Blog eine kleine Lehrstunde in Sachen switch-Statement. switch, geerbt aus einer langen Ahnenreihe von Programmiersprachen (Java, C++, C), kann ein mächtiges Instrument sein. Aber – mächtige Instrumente habe das oft an sich – es ist auch gefährlich: man kann es viel zu sehr zu einem goto umwandeln, was man nicht will. Auch wenn die Erinnerung an alte Brotkastentage lebt:

10	print "Dummes Zeug"
20	goto 10

LOL. Nein, nein, das wollen wir nicht.

Und switch hat noch ein anderes Problem: die sogenannten Fallthroughs. Allzuoft (das sieht man auch gerne mal in PHP-Programmen) wird es benutzt, um für eine Bedingung mehrere Tasks auszuführen, ganz einfach indem man das break am Ende eines case-Blocks weglässt. Denn dann wir bekanntermaßen fröhlich weitergeswitched. Was als prima Trick daherkommt, ist gar nicht so schlau, weil das Vergessen eines breaks eben auch ein unfreiwilliger Bug sein kann. Und wer geht nun hin und findet in ein paar tausend Zeilen Code die Blöcke, die absichtlich kein break haben und welche nicht? Eben.

Noch keine Kommentare.

Datenschutzhinweis

Daten die in dieses Formular eingegeben werden, werden mit Hilfe des Dienstes welcomments.io verarbeitet. Dabei fallen die in der Datenschutzerklärung dieses Dienstes aufgeführten Daten (IP-Adresse, Browserversion) an, die dort auch gespeichert werden. Gebe keine persönlichen Daten in dieses Formular ein, im Zweifelsfall nutze einen Spitznamen, alles eingegebene wird hier öffentlich angezeigt. Es werden keine Cookies gespeichert, lediglich der Kommentartext wird im Localstorage des Browsers zwischengespeichert.

GitHub-flavored Markdown und einfache HTML-Tags werden unterstützt.

Hinweis…

Diese Seite enthält Videos von Youtube. Diese sind standardmäßig deaktiviert. Falls Du unten auf „Ja“ klickst, werden Daten von Youtube auf Deinen Rechner geladen und so mindestens Deine IP-Adresse an Youtube weiter gegeben. Cookies werden nicht verwendet. Mehr Infos.

Möchtest du Youtube auf dieser Seite aktivieren?