Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#29

AW: Schleifenvariable ausserhalb der Schleife benutzen

  Alt 20. Nov 2011, 10:45
Sagt mal, der Compiler wird ja wohl nicht so dämlich sein, und den Variableninhalt überschreiben, bevor auf ihn zugegriffen wird.

Delphi-Quellcode:
For i:=1 to 10 do SomethingWith(i);
//
// Einige Zeit später
//
Writeln(i);
Muss immer funktionieren. Es ist eben nur so, das entweder die 0 oder 11 drin steht (denke ich). Deshalb 'unbestimmt'.
Der Compiler ist nicht dämlich, weil er nichts verändert, sondern erst das Programm (Compilat), wenn es läuft.

Wie Bummi es schon erwähnt: Der Wert um eins höher. Wird also nach der letzten Schleife noch einmal um 1 erhöht, um dann festzustellen, daß die (For-)Schleifenbedingung nicht mehr erfüllt ist -> Schleifenabbruch.

Der - in dieser Hinsicht intelligente - Compiler gibt zudem einen Warnhinweis aus: "For-Schleifenvariable kann nach Durchlauf undefiniert sein".
  Mit Zitat antworten Zitat