Zitat:
habe das delphi programm nicht zuhause und kann auch nicht gucken
Delphi-Hilfe zur For-Anweisung:
Zitat:
Im Gegensatz zur repeat- und while-Anweisung wird bei einer for-Anweisung angegeben, wie oft die Schleife durchlaufen werden soll. Die Syntax einer for-Anweisung lautet
for Zähler := Anfangswert to finalValue do Anweisung
oder
for Zähler := Anfangswert downto Endwert do Anweisung
Die Variablen haben folgende Bedeutung:
Zähler ist eine lokale Variable ordinalen Typs ohne Qualifizierer. Sie wird in dem Block deklariert, in dem die for-Anweisung enthalten ist.
Anfangswert und Endwert sind Ausdrücke, die zu Zähler zuweisungskompatibel sind.
Anweisung ist eine einfache oder eine strukturierte Anweisung, die den Wert von Zähler nicht ändert.
Die for-Anweisung weist Zähler den angegebenen Anfangswert zu und führt anschließend wiederholt Anweisung aus. Abhängig von der verwendeten Syntax wird der Wert von Zähler bei jedem Durchlauf erhöht (for...to) oder erniedrigt (for...downto). Sobald der Wert von Zähler mit dem Wert von Endwert identisch ist, wird Anweisung ein letztes Mal ausgeführt und anschließend die for-Anweisung beendet. Anweisung wird also einmal für jeden Wert ausgeführt, der im Bereich von Anfangswert bis Endwert liegt. Ist Anfangswert mit Endwert identisch, wird Anweisung genau einmal ausgeführt. Wenn Anfangswert in einer for...to-Anweisung größer als Endwert ist, wird Anweisung kein einziges Mal ausgeführt. Dasselbe gilt für eine for...downto-Anweisung, in der Anfangswert kleiner als Endwert ist. Nach der Beendigung der for-Anweisung ist der Wert von Zähler nicht definiert (vorausgesetzt, die Beendigung wurde nicht durch eine break- oder exit-Prozedur verursacht).
Die Ausdrücke Anfangswert und Endwert werden zur Steuerung der Schleifenausführung nur einmal ausgewertet, und zwar vor Beginn der Schleife. Die for...to-Anweisung hat starke Ähnlichkeit mit dem folgenden while-Konstrukt:
begin
Zähler := Anfangswert;
while Zähler <= Endwert do
begin
Anweisung;
Zähler := Succ(Zähler);
end;
end
Im Unterschied zur for...to-Anweisung wird Endwert aber in der while-Schleife vor jedem Durchlauf erneut ausgewertet. Wenn Endwert ein komplexer Ausdruck ist, kann dies eine Verlangsamung der Ausführungsgeschwindigkeit zur Folge haben. Außerdem können sich von Anweisung verursachte Änderungen an Endwert auf die Ausführung der Schleife auswirken.
Hier einige Beispiele für for-Anweisungen:
for I := 2 to 63 do
if Data[I] > Max then
Max := Data[I];
for I := ListBox1.Items.Count - 1 downto 0 do
ListBox1.Items[I] := UpperCase(ListBox1.Items[I]);
for I := 1 to 10 do
for J := 1 to 10 do
begin
X := 0;
for K := 1 to 10 do
X := X + Mat1[I, K] * Mat2[K, J];
Mat[I, J] := X;
end;
for C := Red to Blue do Check(C);
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)