![]() |
Re: Break/Exit verwenden?
Zitat:
|
Re: Break/Exit verwenden?
Zitat:
Die Mehrzahl der Teilnehmer an diesem Forum - meine Einschätzung aufgrund der Beiträge der letzten 3 Wochen - sind keine Programmierer, sondern eher daran interessiert sich dahin zu entwickeln. Das Lerntempo hängt allerdings nicht allein vom Lernwillen ab, sondern auch von der Fähigkeit, die hier geposteten Beiträge hinterfragen zu können. Das eigentliche Lernen findet idealerweise außerhalb des Forums statt, da ein Forum ein zu wenig formales und zielgerichtetes Medium darstellt. Zurück zu Break und Exit. Die beiden Anweisungen haben eine glasklare Semantik. Bevor ich in einem Code Review die Verwendung von Break oder Exit moniere, stelle ich in der Regel fest, dass der Programmierer eigentlich ein Codierer war, der gar keinen sauberen Entwurf zustande gebracht hat und einfach drauf los gehackt hat. Das ist die Zeitbombe, die in fast jedem Programm tickt. In einem sauberen Entwurf fallen die beiden Anweisungen zur Terminierung gewiss nicht unangenehm auf. Nachdenkliche Grüße vom marabu |
Re: Break/Exit verwenden?
Ob ich break oder exit nehme, kommt immer drauf an. Meistens sucht man ja was in einer Schleife. Da ich es vorziehe, immer nur eine Aufgabe in einer Routine laufen zu lassen, käme die Suche in eine eigene Funktion:
Delphi-Quellcode:
Vorteil, ich kann auch elegant temorär Speicher alloziieren und über Try..Finally freigeben
Function Suche (Was : TDing) : TResult;
Begin For Result := 0 To Anzahl do If Dinge[Result] = Was then exit; Result := -1 End;
Delphi-Quellcode:
break dagegen beendet die Schleife einfach. Das macht eigentlich nur Sinn, wenn ich gegen meine Doktrin, 'pro Aufgabe eine Funktion' verstosse, was natürlich vorkommt, weil z.B. zwei kurze Schleifen hintereinander, deren Sinn sonnenklar, natürlich nicht in zwei lokale Pupselprozeduren geschmissen werden. Irgendwann is ja auch man gut mit Refactoring.
Function Suche (Was : TDing) : TResult;
Begin S := TStringlist.Create; Try For Result := 0 To Anzahl do If Dinge[Result] = Was then exit; Result := -1 Finally S.Free // Wird auch bei exit aufgerufen End; End; |
Re: Break/Exit verwenden?
Ich finde break und exit auch in den meisten Fällen absolut sinnvoll.
Ein Exit ähnelt dem return aus anderen Sprachen und es passiert ja auch genau das, die Funktion wird verlassen und der Wert zurückgegeben. ;) Mit break kann ich eine Schleife beenden ohne mich ich Abruchsbedingungen in der while clause zu verhaspeln. Solange etwas meinen Code intuitiver und lesbarer macht wäre ich doch schön doof würde ich es nicht nehmen. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 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