Einzelnen Beitrag anzeigen

demic
(Gast)

n/a Beiträge
 
#1

For in For dann Goto

  Alt 15. Mär 2011, 22:46
Delphi-Version: 5
Hallo,

habe einen Code der funktioniert.

Als Beispiel:

Delphi-Quellcode:
procedure...
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;
 ForEnd:
 ... variable a und b für die weitere Verarbeitung
end;
Delphi gibt hier Warnungen aus:
For Schleifenvariable 'a' kann nach Durchlauf undefiniert sein
For Schleifenvariable 'b' kann nach Durchlauf undefiniert sein

Versteh ich nur halbwegs... z.b. wenn ein Goto vor der FOR-Schleife stattfinden sollte. Das ist jetzt nicht der Fall. Habe nun mal die Hilfe gelesen.

Da steht folgendes:
Diese Warnung wird angezeigt, wenn die Steuervariable einer for-Schleife nach der Schleife verwendet wird.
Sie können sich nur auf den letzten Wert eines for-Schleifenzählers verlassen, wenn die Schleife mit einer goto- oder exit-Anweisung verlassen wird.
Der Grund für diese Einschränkung ist, dass der Compiler dadurch sehr effizienten Code für die for-Schleife erzeugen kann.

Je nach Prüfung verlässt Goto die beiden FOR-Schleifen korrekt und in 'a' und 'b' habe ich die richtigen Werte. Ich lese jedoch in der Hilfe, dass ich mich eigentlich nur darauf verlassen kann, dass in 'a' der Wert 10 und in 'b' der Wert 20 stehen kann.

Verstehe ich etwas falsch?

Gruß
Michael

Geändert von mkinzler (16. Mär 2011 um 07:32 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat