Wie von Uwe Raabe schon erwähnt:
Delphi-Quellcode:
..
Function ProcessAction : Boolean;
var
varCurrActClass : TLastActionClass;
i : integer;
begin
for i := 0 to FLastActionList.Count -1 do begin
varCurrActClass := FLastActionList.Items[i];
if (...) then begin
FLastActionList.Remove(varCurrActClass);
FLastActionList.TrimExcess;
exit(true);
end;
if (...) then begin
FLastActionList.Remove(varCurrActClass);
FLastActionList.TrimExcess;
exit(true);
end;
end;
exit(false);
end;
begin
while ProcessAction() do;
end;
Bisserl refactoring wg. DRY wäre noch möglich. Und der Funktion solltest Du noch die passende Bezeichnung verpassen.
Goto wird nie benötigt und wer ein Flag mitschleppen muss, weil innere Schleifen verlassen, sollte refaktorisieren. Ausnahme: Höchst zeitkritische Abläufe, denn dann ist alles erlaubt. Aber ansonsten geht
imho Clean Code vor Performance.