4.7.2 For, continue

Die for-Schleife ist eine oft genutzte Schleife in PHP und verhält sich wie die for-Schleife in C. Sie erwartet drei durch Semikolons getrennte Anweisungen: die erste Anweisung wird dabei vor jeder Ausführung der Schleife ausgeführt, die zweite Anweisung wird zur Überprüfung genutzt und die Schleife wird nur ausgeführt, wenn diese Anweisung den Wert Wahr (true) zurückgibt. Am Ende jedes Schleifendurchlaufes wird dann die dritte Anweisung ausgeführt. Üblicherweise nutzt man diese Schleife, wenn etwas für eine bestimmte Anzahl wiederholt werden soll.

1
2
3
for ($count = 1; $count <= 10; $count++) {
    echo "$count <br>";
}

In der Ausgabe wird so einfach von 1 bis 10 hoch gezählt. Die Schleife wird somit 10-mal durchlaufen, da $count kleiner oder gleich 10 ist. Erst nach dem 10. Durchlauf wird $count auf 11 gesetzt, wodurch die Schleife nicht mehr ausgeführt wird.

In einer for-Schleife sollten aber nie feste Werte eingetragen werden. Der folgende Sourcecode ist somit viel professioneller:

1
2
3
4
5
$start =  1;
$stop  = 10;
for ($count = $start; $count <= $stop; $count++) {
    echo "$count <br>";
}

Übung

Überlegen Sie sich eine for-Schleife, die von 200 in 5er-Schritten runter zählt auf 100.

Lösung
1
2
3
4
5
6
$start = 200;
$stop  = 100;
$step  = 5;
for ($count = $start; $count >= $stop; $count -= $step) {
    echo "$count <br>";
}

Übung

Überlegen Sie sich eine for-Schleife, die die Summe der Zahlen im Bereich 20 bis 50 bildet. Die Ausgabe soll wie folgt aussehen: 20+21+22+...+49+50=1085

Lösung
$start = 20;
$stop = 50;
$result = 0; // wird als Integer initialisiert
for ($count = $start; $count < $stop; $count++) {
    echo "$count+";
    $result += $count;
}
// noch den letzten Wert $stop addieren
$result += $stop;
echo "$stop=$result";

continue

Die continue-Anweisung ist in manchen Situationen sehr hilfreich. Hierdurch wird der aktuelle Schleifen-Durchgang sofort unterbrochen und die Bedingung neu geprüft.

In der for-Schleife soll nun die Ausgabe des Wertes 6 übersprungen werden:

1
2
3
4
5
6
7
8
9
$start = 1;
$stop = 10;
$skip = 6;
for ($count = $start; $count <= $stop; $count++) {
    if ($count === $skip) {
        continue;
    }
    echo "$count <br>";
}

Ein continue kann auch in foreach- und while-Schleifen verwendet werden.