Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
4.094 Beiträge
 
Delphi 12 Athens
 
#12

AW: case .. of kann kein break - Gibt es dafür einen rationalen Grund?

  Alt 8. Mai 2024, 14:01
Die "reine Lehre" sagt wohl, dass jeder Block nur genau einen Eingang und genau einen Ausgang haben darf. Daher ist sowas im ursprünglichen Pascal nicht enthalten...

Gruß, Meik
Das bleibt doch auch so.
Aber ja, es gibt dann versciedene Pfade.
Die gibt es durch if then else, case usw. auch schon.

Und ja, "break" ist in Pascal für Schleifen da.
Vermutlich sollte ich im C-Formum mal danach fragen.

Standard Pascal nach Jensen/Wirth kennt dieses Break gar nicht. Eingeführt wurde es um Schleifen vorzeitig bzw. unabhängig von der Schleifenbedingung abzubrechen. Ein Verlassen des Scopes mit Exit gibt es (neben Goto, geht aber nicht immer) nur bei Methoden, Prozeduren und Funktionen. Das case-Konstrukt gehört in keine dieser Kategorien.
Ja, ein Exit verlässt eine Methode/Prozedur/Funktion, also auch den Scope eben dieser.
Na gut, wenn ich innerhalb einer Methode extra Scopes mit begin ... end aufmache, dann verlässt ein Exit immer noch die ganze Methode.

Du stimmst mir hoffentlich zu, das innerhalb eines cases auch ein "Scope" existiert.
Klar kann ich da auch mit Exit; raus.

Ich würde auch kein break innerhalb des case haben wollen. Dazu benutze ich es zu gern zum Abbruch einer darum liegenden Schleife.
Das Problem hat man in C natürlich auch.

Die meisten Erklärungen bis jetzt sind aber nur persönliche Befindlichkeiten oder Abneigungen, aber bis jetzt kein echter Informatik-lastiger Grund,
wieso ein frühzeitiger Abbruch eines case ... of Scopes irgendwie schädlich sein könne.
Der Beweis wäre das es mit goto geht, wahrscheinlich muss ich bei den Gründen nach den Abneigungen gegen goto suchen (Spagetti-Code).
  Mit Zitat antworten Zitat