Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

AW: For in For dann Goto

  Alt 15. Mär 2011, 23:53
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: Hier im Forum suchenGOTO



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 'bthen 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 'bthen
      begin
        //... variable a und b für die weitere Verarbeitung
        exit; // Achtung: springe aus der ganzen Prozedur
      end;
    end;
  end;
end;
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat