for-Schleifen
Aktualisiert: November 2007
Bei der for-Anweisung wird eine Zählervariable, eine Testbedingung und eine Aktion zum Aktualisieren des Zählers angegeben. Vor jeder Iteration der Schleife wird die Bedingung getestet. Ist der Test erfolgreich, wird der Code in der Schleife ausgeführt. Ist der Test nicht erfolgreich, wird der Code in der Schleife nicht ausgeführt, und das Programm wird mit der ersten Codezeile unmittelbar nach der Schleife fortgesetzt. Nach jeder Ausführung der Schleife wird die Zählervariable aktualisiert, bevor der nächste Schleifendurchlauf beginnt.
Verwenden von for-Schleifen
Wenn die Bedingung für die Schleife zu keinem Zeitpunkt erfüllt ist, wird die Schleife nie durchlaufen. Wenn die Testbedingung stets erfüllt ist, entsteht eine Endlosschleife. Ersteres kann in einigen Fällen wünschenswert sein. Letzteres ist nur selten beabsichtigt. Achten Sie daher bei der Programmierung der Schleifenbedingung sorgfältig darauf, dass keine Endlosschleife entsteht. Im folgenden Beispiel werden mit der for-Schleife die Elemente eines Arrays mit der Summe aus den vorherigen Elementen initialisiert.
var sum = new Array(10); // Creates an array with 10 elements
sum[0] = 0; // Define the first element of the array.
var iCount;
// Counts from 0 through one less than the array length.
for(iCount = 0; iCount < sum.length; iCount++) {
// Skip the assignment if iCount is 0, which avoids
// the error of reading the -1 element of the array.
if(iCount!=0)
// Add the iCount to the previous array element,
// and assign to the current array element.
sum[iCount] = sum[iCount-1] + iCount;
// Print the current array element.
print(iCount + ": " + sum[iCount]);
}
Ausgabe dieses Programms:
0: 0
1: 1
2: 3
3: 6
4: 10
5: 15
6: 21
7: 28
8: 36
9: 45
Das nächste Beispiel enthält zwei Schleifen. Der Codeblock der ersten Schleife wird niemals ausgeführt, die zweite Schleife ist eine Endlosschleife.
var iCount;
var sum = 0;
for(iCount = 0; iCount > 10; iCount++) {
// The code in this block is never executed, since iCount is
// initially less than 10, but the condition checks if iCount
// is greater than 10.
sum += iCount;
}
// This is an infinite loop, since iCount is always greater than 0.
for(iCount = 0; iCount >= 0; iCount++) {
sum += iCount;
}