Delphi-Quellcode:
procedure...
label ForEnd;
begin
for a := 0 to 10 do
begin
for b := 0 to 20 do
begin
if ... then
Goto ForEnd;
end;
end;
ForEnd:
...
end;
dieses läßt sich so behandeln
Delphi-Quellcode:
procedure...
label ForEnd;
begin
try
for a := 0 to 10 do
begin
for b := 0 to 20 do
begin
if ... then
Exit;
end;
end;
finally
...
end;
end;
ABER
Zitat:
variable a und b für die weitere Verarbeitung
auf die Schleifenwerte von A und B darf außerhalb der jeweiligen FOR-Schleifen nicht zugegriffen werden,
also liegt hier eh ein gravierender Logikfehler vor
Man kann diese Variablen zwar wiederverwenden, aber nach den Schleifen sind deren werte erstmal "undefiniert", weswegen sie bei einer Wiederverwendung notfalls nochmal initialisiert werden müssen.
So oder so, nach dem Exit darf auf diese Schleifen-Variablen nicht nochmal lesend zugegriffen werden.
Die einzige Lösung wären also Repeat- oder While-Schleifen.
Und ja, Goto hat teilweise auch seine Berechtigung.
Von mir schwirrt sogar ein Code damit in der CodeLib rum, welcher sich anders hätte wesentlich umständlicher lösen lassen