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:
Function Suche (Was : TDing) : TResult;
Begin
For Result := 0 To Anzahl do
If Dinge[Result] = Was then
exit;
Result := -1
End;
Vorteil, ich kann auch elegant temorär Speicher alloziieren und über Try..Finally freigeben
Delphi-Quellcode:
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;
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.