Warum Switch / Case und nicht If / Else If?

Diese Frage wurde hauptsächlich in C / C ++ gestellt, aber ich denke, dass auch andere Sprachen relevant sind.

Ich kann nicht verstehen, warum switch / case immer noch verwendet wird, anstatt if / else if. Mir kommt es so vor, als würde man goto's verwenden, und das führt zu demselben chaotischen Code, während die gleichen Ergebnisse mit if / else if auf eine viel besser organisierte Weise erzielt werden könnten.

Trotzdem sehe ich diese Blöcke ziemlich oft. Sie werden häufig in der Nähe einer Nachrichtenschleife (WndProc ...) gefunden. Dies ist jedoch einer der Orte, an denen sie die größte Verwüstung anrichten: Variablen werden im gesamten Block gemeinsam genutzt, auch wenn sie nicht geeignet sind (und nicht sein können) darin initialisiert). Besonderes Augenmerk muss darauf gelegt werden, Pausen nicht fallen zu lassen, und so weiter ...

Persönlich vermeide ich es, sie zu benutzen, und frage mich, ob mir etwas fehlt?

Sind sie effizienter als wenn / sonst? Werden sie von der Tradition weitergeführt?

Antworten auf die Frage(15)

Ihre Antwort auf die Frage