![]() |
Delphi-Version: 6
Verständnisfrage zu Exit
Als C/C++ Vorgeschädigter denke und schreibe ich immer noch ein result hin und erwarte das ende der Funktion. Nun, da Delphi ja bei einem result nicht die Funktion beendet, dachte ich exit zu benutzen, davor wird in der Delphi Basics Hilfe aber gewarnt. Was spricht eigentlich dagegen sowas zu schreiben und sich anzugewöhnen
Delphi-Quellcode:
Die ganzen nachkommenden else if Abfragen brauch ich ja nicht durchzugehen, wenn ich meine Funktion hier beenden will?
if A then begin
result := 1; exit; end else if B then... |
AW: Verständnisfrage zu Exit
Tust Du ja auch nicht:
Delphi-Quellcode:
Bei Deinem Beispiel ist das Exit schlicht überflüssig.
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. |
AW: Verständnisfrage zu Exit
Result in C++? Meinst du
Delphi-Quellcode:
?
return
Wie auch immer, gegen deinen Code spricht nichts. Außer dass du auch stattdessen schreiben könntest
Delphi-Quellcode:
.
Exit(1)
Zitat:
|
AW: Verständnisfrage zu Exit
Wenn die Bedingung wahr ist wird das else eh nicht abgearbeitet.
|
AW: Verständnisfrage zu Exit
Da gibt es unterschiedliche Auffassungen, die aber eher dem persönlichen Geschmack geschuldet sind.
Der Code sieht halt mit und ohne Exit unterschiedlich aus. Funktionelle Probleme bzw. Fehler gibt es durch Exit jedoch nicht. Du kannst mit Exit in einer Funktion auch direkt den Rückgabewert mitgeben.
Delphi-Quellcode:
Zu beachten ist, dass bei Exit in einem try-finally-Block in den finally-Abschnitt gesprungen wird (und danach - glaube ich - direkt aus der Methode).
if A then
begin Exit(1); end else if B then... |
AW: Verständnisfrage zu Exit
Naja, dann aber bitte so:
Delphi-Quellcode:
Wenn ich schon mit Exit rausspringe, kann ich mir die nachfolgende Else sparen.
if A then Exit(1);
if B then... |
AW: Verständnisfrage zu Exit
Zitat:
|
AW: Verständnisfrage zu Exit
Zitat:
|
AW: Verständnisfrage zu Exit
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 ;)
Delphi-Quellcode:
for i := 0 to MaxInt do begin
if i > Trunc(Now) then begin Result := i div 42; break; end; end; |
AW: Verständnisfrage zu Exit
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz