Ich werde mit all Ihren jungen Whippersnappern in dieser Sache nicht einverstanden sein.
Die Verwendung von Return mitten in einer Methode, ungültig oder auf andere Weise, ist aus Gründen, die der verstorbene Edsger W. Dijkstra vor fast vierzig Jahren ganz klar formuliert hat, sehr schlecht, beginnend mit der bekannten "GOTO Statement Considered Harmful" "und weiter in" Structured Programming "von Dahl, Dijkstra und Hoare.
Die Grundregel lautet, dass jede Kontrollstruktur und jedes Modul genau einen Eintrag und einen Ausgang haben sollte. Eine explizite Rückgabe in der Mitte des Moduls verstößt gegen diese Regel und macht es viel schwieriger, über den Status des Programms nachzudenken, was es wiederum viel schwieriger macht zu sagen, ob das Programm korrekt ist oder nicht (was eine viel stärkere Eigenschaft ist als "ob es zu funktionieren scheint oder nicht").
"GOTO Statement als schädlich" und "Structured Programming" leiteten die Revolution der "Structured Programming" der 1970er Jahre ein. Diese beiden Teile sind die Gründe, warum wir heute if-then-else, while-do und andere explizite Kontrollkonstrukte haben und warum GOTO-Anweisungen in Hochsprachen auf der Liste der gefährdeten Arten stehen. (Meine persönliche Meinung ist, dass sie auf der Liste der ausgestorbenen Arten stehen müssen.)
Es ist erwähnenswert, dass der Message Flow Modulator, die erste militärische Software, die EVER beim ersten Versuch ohne Abweichungen, Verzichtserklärungen oder "Ja, aber" -Sprache bestanden hat, in einer Sprache geschrieben wurde, die es nicht einmal gab eine GOTO-Anweisung.
Erwähnenswert ist auch, dass Nicklaus Wirth die Semantik der RETURN-Anweisung in Oberon-07, der neuesten Version der Oberon-Programmiersprache, geändert hat und sie zu einem nachfolgenden Teil der Deklaration einer typisierten Prozedur (dh einer Funktion) und nicht zu einer ausführbare Anweisung im Hauptteil der Funktion. Seine Erklärung der Änderung sagte , dass er gerade tat , weil die bisherige Form WAR eine Verletzung des Ein-Ausgang Prinzip der strukturierten Programmierung.