Schleifen

while Schleife

Schleifen braucht man, um Anweisungen zu wiederholen. In der while-Schleife wird am Anfang eine Bedingung definiert. Solange die Bedingung zutrifft wird eine Anweisung ständig wiederholt. Sobald die Bedingung den Wert false liefert (also nicht zutrifft), wird die Schleife abgebrochen.
while(Bedingung){Anweisungen;}

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <?php
$n=1;
while($n<20){
echo $n++ ," ";
}
?>

Do while Schleife

Der Unterschied zur normalen while-Schleife ist, dass die Bedingung am Ende der Schleife steht. Das hat zur Folge, dass die Schleife mindestens einmal durchlaufen wird, auch wenn die Bedingung nicht zutrifft.

1
2
3
4
5
6
7
8
9
<?php
$n=1;
do{
echo $n, "<br>";
$n++;
}while ($n<10)
?>

break

Mit dem Befehl break wird die Ausführung der Schleife abgebrochen. Das macht natürlich nur Sinn, wenn break in einer if-Struktur eingesetzt wird.

100 <?php
$n=1;
$max=200;
while($n<=$max){
if($n>=100){
break;
}
$n++;
}
echo $n;
?>

Stattdessen könnte man das Abbruchkriterium auch gleich im Kopf der Schleife mit unterbringen, indem man beide Bedingungen mit and verknüpft.
while($n<=$max and $n<200){$n++;}

break kann man auch in anderen Scheifen einsetzen.

continue

continue bewirkt, dass alle folgenden Anweisungen gestoppt werden, die Schleife selber jedoch nicht abbricht.

Im folgendem Beispiel wird Zahl 4 übersprungen, da durch continue der nachfolgende echo Befehl nicht ausgeführt und die Schleife wieder in den Schleifenkopf springt.

Man muss aufpassen, wenn das $a++ nach dem continue aufgeführt würde, hätte man eine Endlosschleife, da die Bedinung im Schleifenkopf zwar erfüllt ist, aber die Variable a nicht mehr erhöht würde durch die continue Anweisung.

1235678910
    $a = 0;
    while ($a < 10) {
        $a++;
        if ($a == 4) {
            continue;
        }
        echo $a;
    }

 

Erreicht $b den Wert 200 wird die folgenden Anweisung $b++ nicht mehr ausgeführt.
Da die Schleife selber durch continue nicht abbricht, wird jedoch $a++ welches vor dem continue Befehl steht weiter ausgeführt.

300
200
<?php
$a=0;
$b=0;
while($a<300){
$a++;
if($b==200){
continue;
}
$b++;
}
echo $a, "<br>", $b;
?>

 

continue lässt sich auch in anderen Schleifen einsetzen.

For Schleife

Die For Schleife zählt selbständig eine Variable rauf oder runter. Das heißt die Bedinung sowie die Variable wird im Schleifenkopf definiert. Sobald ein definierter Wert erreicht wird, bricht die Schleife ab.
for (Startwert; Bedingung; Schrittweite){Anweisungen}
Der Startwert z.B.$ i=1 besteht aus einer initiierten Zählvariablen oder Laufvariablen. Das heißt die Schleife beginnt mit diesem Wert. Die Schrittweite bestimmt in welchen Schritten, die Variable bei jedem Durchlauf hochgezählt wird z.B.$i++oder $i=$i+3 Die Bedinung bestimmt den Abbruch der Schleife z.B $i<20 bedeutet, wenn i den Wert 20 erreicht, wird die Schleife abgebrochen.

1
2
3
4
5
6
7
8
9
10
<?php
for($i=1; $i<=10; $i++){
echo $i. "<br>";
}
?>

For Schleife mit 2 Variablen

Man kann einer For-Schleife auch 2 Variablen für das Zählmuster zuweisen. Diese werden mit Komma getrennt und einem Startwert am Anfang der runden Klammer aufgeführt. Es folgt die Bedingung und dann dass Zählmuster. Beides wird wie gehabt mit Semikolon getrennt. Vor der schließenden Klammer werden wieder beide Variablen mit Komma getrennt aufgeführt und jeweils erhöht oder verringert.

1 * 7 = 7
2 * 7 = 14
3 * 7 = 21
4 * 7 = 28
5 * 7 = 35
6 * 7 = 42
7 * 7 = 49
8 * 7 = 56
9 * 7 = 63
10 * 7 = 70
<?php
for($a=1, $b=7; $a<=50; &a++, $b += 7){
echo "$a * 7 = $b <br>";
}
?>

Diese Beispiel ließe sich auch mit einer Variablen umsetzen, indem man in den geschweiften Klammern die Variable $a mit 7 multipliziert.

echo $a . " * 7 = " .($a*7) . "<br>";

foreach für Array-Bearbeitungen

For Schleifen eignen sich gut für Arrays, da diese über einen Index angesprochen werden.

Bücher
Filme
Videos
Tonträger
<?php
$artikel[0] = "Bücher";
$artikel[1] = "Filme";
$artikel[2] = "Videos";
$artikel[3] = "Tonträger";
for($n=0; $n<=3; $n++){
echo $artikel[$n], "<br>";
}
?>

Im vorigen Beispiel ist es notwendig die Anzahl der Elemente zu kennen, um die Bedingung für die Anzahl der Schleifendurchläufe zu definieren $n<=3. In der Praxis kommt es häufig vor, dass diese Anzahl unbekannt ist. Für diesen Zweck gibt es die for each Schleife. Im Kopf der Schleife wird das Array angegeben und mit der Klausel as wird eine Variable deklariert. In der Schleife selbst wird diese Variable dazu verwendet, auf das aktuelle Element des Arrays zuzugreifen.

Bücher
Filme
Videos
Tonträger
<?php
foreach ($artikel as $Element){
echo $Element, "<br>";
}
?>

 

for each in assoziativen Arrays

<?php
$userDaten = array(
"Nickname"=>"Isi",
"Vorname"=>"Michael",
"Nachname"=>"Albers"
);
?>
Nickname: Isi
Vorname: Michael
Nachname: Albers
<?php
foreach($userDaten as $key => $value){
echo "$key: $value <br/>";
}
?>

 

Auch in for oder foreach Schleifen lassen sich die Anweisungen break und continue einsetzen.


Webdesign / PHP / mySQL / Dreamweaver MX Tipps
Copyright © Michael Albers
www.pastorpixel.de