Forum: Object-Pascal / Delphi-Language
Delphi
by Delphi.Narium,
10. Okt 2020
Dein Beispiel ist für mich etwas absolut normales.
Und, wenn ich auch kein Freund vom Exit bin, hier kann bei mir dann durchaus mal sowas vorkommen:Result := KlapptDas1;
Result := Result and KlapptDas2;
Result := Result and KlapptDas3;
Result := Result and KlapptDas4;
If not Result then exit;
// weil hier einfach ggfls. noch "furchtbarviel" Code folgen kann.
Das entspricht dem weiter...
Forum: Object-Pascal / Delphi-Language
Delphi
by Delphi.Narium,
8. Okt 2020
:thumb:
Exit ist für mich im Großen und Ganzen ein Zeichen von unstrukturierter Programmierung, aber sicher kein empfehlenswerter Programmierstil. Les- und Wartbarkeit leiden, für meine Begriffe, extrem.
Forum: Object-Pascal / Delphi-Language
Delphi
by Delphi.Narium,
8. Okt 2020
Aber in der Situation ist das Exit nicht (zwingend) erforderlich, da die Routine ohne das Exit zum gleichen Ergebnis führen würde.
Schreibtechnisch wird also ein Result := 1 durch Exit(1) ersetzt.
Da finde ich die Zuweisung des Rückgabewertes an Result deutlich intuitiver als ein Exit, auch wenn es letztlich zum gleichen Ergebnis führt.
Exit nutze ich persönlich nur, wenn ich in 'ner...
Forum: Object-Pascal / Delphi-Language
Delphi
by Delphi.Narium,
8. Okt 2020
Ja, aber hinter einem Exit in 'nem If then brauche ich keine Else. Die Alternative zu was soll denn da dann abgefragt werden, wenn die Alternative, zu der es ggfls. eine weitere geben könnte, bereits beschlossen hat, das hier ultimativ schluss iss? ;-)
@kagi3624
For-, Repeat, While-Schleifen kann man mit break verlassen.
Inhaltlich nicht sinnvoll, aber für's Prinzip geeignet ;)
for i...
Forum: Object-Pascal / Delphi-Language
Delphi
by Delphi.Narium,
8. Okt 2020
Naja, dann aber bitte so:
if A then Exit(1);
if B then...
Wenn ich schon mit Exit rausspringe, kann ich mir die nachfolgende Else sparen.
Forum: Object-Pascal / Delphi-Language
Delphi
by Delphi.Narium,
8. Okt 2020
Tust Du ja auch nicht:if A then begin
result := 1;
end
else if B then... // Else besagt doch: Nur wenn das vorherige nicht zutraf. Die Abfrage if b then wird also nicht ausgeführt.
Bei Deinem Beispiel ist das Exit schlicht überflüssig.