Wo benutz man den dieses noch?
Ausser in diesem Beispiel.
Sonst nicht
Der Ausbruch aus mehreren verschachtelten Schleifen ist eine der wenigen Gelegenheiten in denen man es eventuell akzeptieren kann.
Wurde schon oft diskutiert:
GOTO
Im Prinzip ist die Zählervariable außerhalb der for-Schleife undefiniert, aber anscheinend wird der aktuelle Wert garantiert, wenn man mit
exit oder
goto aus der Schleife springt.
Eine andere Variante, die keine Warnungen bringen sollte:
Delphi-Quellcode:
procedure tuWas;
label ForEnd;
begin
for a := 0 to 10 do
begin
for b := 0 to 20 do
begin
if prüfungsachen u.a. mit 'a' und 'b' then Goto ForEnd;
end;
end;
// Wenn nicht herausgesprungen,
// setze die Zählervariablen auf Endwerte.
a := 10;
b := 20;
ForEnd:
//... variable a und b für die weitere Verarbeitung
end;
Beide Varianten machen etwas anderes.
PS: Mediums Variante geht mit exit (dem kleinen Bruder von goto) allerdings auch:
Delphi-Quellcode:
procedure tuWas;
begin
for a := 0 to 10 do
begin
for b := 0 to 20 do
begin
if prüfungsachen u.a. mit 'a' und 'b' then
begin
//... variable a und b für die weitere Verarbeitung
exit; // Achtung: springe aus der ganzen Prozedur
end;
end;
end;
end;