Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Delphi for Schleife -> Warnung

  Alt 2. Mär 2020, 09:50
Dein Problem ist nicht die For-Schleife, sondern dass du danach auf die Zählervariable zugreifst und das ist nicht erlaubt wenn man die Schleife nicht aktiv verlassen hat (z.B. mit break ).

Beispiel:
Delphi-Quellcode:
procedure p();
var
   x, y: Integer;
begin
   x := 0;
   y := 5;
   for x := x to y do
      WriteLn(x);

   WriteLn('Last value: ', x);
end;
Ergibt:
Code:
0
1
2
3
4
5
Last value: 6
x ist nach der Schleife 6 obwohl du gar nicht bis 6 gezählt hast. Davor warnt dich der Compiler und er hat Recht. Wenn du x nach der Schleife nochmal verwenden willst solltest du dir den letzten Wert entweder in einer zusätzlichen Variable merken oder die Schleife aktiv verlassen.

Beispiel:
Delphi-Quellcode:
procedure p();
var
   x, y: Integer;
begin
   x := 0;
   y := 5;
   for x := x to y do
      begin
         WriteLn(x);
         if(x = y) then
            Break;
      end;
   WriteLn('Last value: ', x);
end;
  Mit Zitat antworten Zitat