![]() |
Re: Break / Exit - Grundsatzfrage
Und das war doch sehr amüsant...
|
Re: Break / Exit - Grundsatzfrage
Zitat:
Muss man halt noch ne Prüfung reinsetzen, aber es ging ja um den Grundgedanken, ohne Exit auskommen zu können (hat mich das jetzt gerettet? 8) ) Sherlock |
Re: Break / Exit - Grundsatzfrage
Zitat:
|
Re: Break / Exit - Grundsatzfrage
Ok, Ok .. überredet !!! :oops: ..
Es geht auch mit "gutem" Stil (while Schleife) ... Bevor ich jetzt wieder einen Thread ala "Negative Zahl errechnen" zu verantworten habe, sag ich Danke für den Tip. Aber was ist daran so verwerflich Exit und Break zu benutzen. Für was gibt es die, wenn man diese nicht benutzen soll. Ich z.B. Finde so was besser
Delphi-Quellcode:
als
if Liste.Count = 0 then
Exit weitere 40 Zeilen Code
Delphi-Quellcode:
if Liste.Count > 0 then
begin . . . weitere 40 Zeilen . . . end; mfg Burn |
Re: Break / Exit - Grundsatzfrage
Ich bin jetzt kein Verfechter von Exit oder Break, allerdings verwende ich es auch bedenkenlos, wenn ich es für angebracht halte, deshalb:
Inwiefern ist Exit/Break schlechter Programmierstil? Welche Nachteile erwachsen mir dadurch? |
Re: Break / Exit - Grundsatzfrage
For- und While-"Schleifchen" sind intern eigentlich gleich.
Bei den Repeat-Until-"Schleifchen" wird nur der Ausdruck zuletzt ausgewertet
Delphi-Quellcode:
so und jetzt sage mal einer GOTO / Exit / Break seien so schlecht, wenn intern eh alles auf GOTO+IF aufbaut
for i := i2 to i3 do begin
if xyz then break; end; // entspricht (bzw) i := i2; while i <= i3 do begin if xyz then break; inc(i); end; // nja, eigentlich mehr diesem, wenn man bedenkt, // daß Delphi i3 nur zu Begin der Schleife auswertet und das ergebnis zwischenspeichert i := i2; e := i3; while i <= e do begin if xyz then break; inc(i); end; // und Delphi macht intern aus der For-, bzw der 2. While-Schleife dieses i := i2; e := i3; Loop: if i > e then goto LoopExit; if xyz then goto LoopExit; inc(i); goto Loop; LoopExit: // PS: das ganze mit Repeat-Until, statt While, sieht etwa so aus i := i2; e := i3; Loop: if xyz then goto LoopExit; inc(i); if i <= e then goto Loop; LoopExit: // alles ohne CodeOptimierung Am Ende hat alles seine Vor- und Nachteile. Und ich versuch das zu verwenden, welches in der entsprechenden Situation am Übersichtlichsten/Einfachsten ist. :angel: [add] *rote kästen ignorier* [add] Nur hier sollten endlich mal alle den Unterschied zwischen EXIT und Break/Continue begreifen Exit - beendet die Prozedur/Funktion Break - beendet die Schleife |
Re: Break / Exit - Grundsatzfrage
Also solange du weißt was du tust, kannst du Break und Exit wohl verwenden (es compiliert und läuft ja ordentlich :mrgreen:)
Aber so eine Zeile mit "if .. then Exit" könnte ggf. bei langen Code schon mal übersehen werden, besonders wenn es irgendwo mitten im Code ist... Ansonsten verweise ich gerne auf einen 5 Jahren alten Thread von mir zum selben Thema: ![]() Viele Grüße |
Re: Break / Exit - Grundsatzfrage
Man kanns ja auch mit Goto lösen wen man Break oder Exit nicht mag.
Nö. :mrgreen: // Edit: Och manno, himitsu hats ja schon geschrieben... :( |
Re: Break / Exit - Grundsatzfrage
Jeder Code der
1. gut wartbar ist 2. keine performanceeinbußen eingeht 3. die Funktionalität nicht einschränkt ist der RICHTIGE Code. Ob du Exit, Break oder sogar Goto benutzt ist irrelevant.PUNKT. |
Re: Break / Exit - Grundsatzfrage
Zitat:
Man könnte eher Fragen warum der Parameter nicht "const" ist und warum Exit anstatt Break (hier ausreichend) verwendet wird. Es gibt nicht die richtige Lösung, sondern nur bessere und schlechtere Lösungen. Was "besser" ist, hängt von den Anforderungen, den Umständen und eigenen Entscheidungen ab. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 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 by Thomas Breitkreuz