5. Unterrichtsblock

PHP Schleifen
Wenn Sie Code schreiben, möchten Sie häufig, dass derselbe Codeblock immer und immer wieder ausgeführt wird. Anstatt also mehrere fast gleiche Codezeilen in ein Skript einzufügen, können wir Schleifen verwenden.
Schleifen werden verwendet, um denselben Codeblock immer wieder auszuführen, solange eine bestimmte Bedingung wahr ist.
In PHP haben wir die folgenden Schleifentypen:
while
– Durchläuft einen Codeblock so lange, wie die angegebene Bedingung wahr istdo...while
– Durchläuft einen Codeblock einmal und wiederholt dann die Schleife, solange die angegebene Bedingung wahr istfor
– Durchläuft einen Codeblock eine bestimmte Anzahl von Malenforeach
– Durchläuft einen Codeblock für jedes Element in einem Array
Die folgenden Sektionen erläutern und geben Beispiele für jeden Schleifentyp.
PHP while-Schleife
Die while
-Schleife führt einen Codeblock aus, solange die angegebene Bedingung wahr ist.
// Syntax
while (Bedingung ist wahr) {
auszuführender Code;
}
<?php
/*
Das folgende Beispiel zeigt die Zahlen von 1 bis 10:
*/
$x = 1;
while($x <= 10) {
echo "Schritt: $x <br>";
$x++;
}
/*
ERKLÄRUNG
$x = 1; - Initialisiert den Schleifenzähler ($x) und setzt diesen auf den Startwert 1
$x <= 10 - Setzt die Schleife fort, solange $x kleiner oder gleich 10 ist
$x++; - Erhöht den Schleifenzählerwert um 1 für jede Iteration (Inkrementierungs Operator)
*/
?>
Aufgabe
Baue o.g. Code so um, dass er von 20 bis auf 5 herunterzählt.
<?php
$x = 0;
while($x <= 100) {
echo "Erhöhung auf: $x <br>";
$x+=10;
}
/*
ERKLÄRUNG
$x = 0; - Initialisiert den Schleifenzähler ($x) und setzt den Startwert auf 0
$x <= 100 - Setzt die Schleife fort, solange $x kleiner oder gleich 100 ist
$x += 10; - Erhöht den Schleifenzählerwert um 10 für jede Iteration
*/
?>
Aufgabe
Baue o.g. Code so um, dass die Schleife beim Startwert 1000 beginnt und der Startwert solange durch 2 geteilt wird, bis der Wert 50 unterschritten ist.
PHP do…while-Schleife
Die do...while
-Schleife führt den Codeblock immer einmal aus, überprüft dann die Bedingung und wiederholt die Schleife, solange die angegebene Bedingung wahr ist.
// Syntax
do {
auszuführendes Programm;
} while (Bedingung ist wahr);
<?php
/*
Das folgende Beispiel setzt zuerst die Variable $x auf den Startwert 1
Dann schreibt die do while-Schleife eine Ausgabe und inkrementiert anschließend die Variable $x um 1
Danach wird die Bedingung überprüft (ist $x kleiner oder gleich 10?)
Die Schleife wird so lange weiterlaufen wie $x kleiner oder gleich 1 ist
*/
$x = 1;
do {
echo "Zählerstand: $x <br>";
$x++;
} while ($x <= 10);
?>
Aufgabe
Baue o.g. Code so um, dass die Schleife beim Startwert 20 beginnt und der Startwert solange dekrementiert, bis der Wert 5 unterschritten ist.
Hinweis: In einer
do...while
-Schleife wird die Bedingung NACH der Ausführung der Anweisungen innerhalb der Schleife getestet. Das bedeutet, dass diedo...while
-Schleife ihre Anweisungen mindestens einmal ausführt, selbst wenn die Bedingung falsch ist. Siehe Beispiel unten.
<?php
/*
Dieses Beispiel setzt den Startwert auf 6, führt die Schleife aus und überprüft anschließend die Bedingung:
*/
$x = 6;
do {
echo "Zählerstand: $x <br>";
$x++;
} while ($x <= 5);
?>
PHP for-Schleife
Die for
-Schleife wird verwendet, wenn Sie im Voraus wissen, wie oft das Skript ausgeführt werden soll.
// Syntax
for (init counter; test counter; increment counter) {
Programm, dass bei jeder Iteration ausgeführt wird;
}
Parameter:
- init counter: Initialisiert den Schleifenzählerwert
- test counter: Wird für jede Schleifeniteration ausgewertet. Wenn es zu TRUE ausgewertet wird, wird die Schleife fortgesetzt. Wenn es zu FALSE ausgewertet wird, endet die Schleife.
- increment counter: Erhöht den Wert des Schleifenzählers
<?php
/*
Das folgende Beispiel zeigt die Zahlen von 0 bis 10:
*/
for ($x = 0; $x <= 10; $x++) {
echo "Zählerstand: $x <br>";
}
/*
ERKLÄRUNG
$x = 0; - Initialisiert den Schleifenzähler ($x) und setzt den Startwert auf 0
$x <= 10; - Setzt die Schleife fort, solange $x kleiner oder gleich 10 ist
$x++ - Erhöht den Zählerwert um 1 für jede Iteration
*/
?>
Aufgabe
Baue o.g. Code so um, dass die Schleife beim Startwert 20 beginnt und der Startwert solange dekrementiert, bis der Wert 5 unterschritten ist.
<?php
/*
Dieses Beispiel zählt in Zehnerschritten bis 100:
*/
for ($x = 0; $x <= 100; $x+=10) {
echo "Zählerstand: $x <br>";
}
/*
ERKLÄRUNG
$x = 0; - Initialisiert den Schleifenzähler ($x) und setzt den Startwert auf 0
$x <= 100; - Setzt die Schleife fort, solange $x kleiner oder gleich 100 ist
$x+=10 - Erhöht den Zählerwert um 10 für jede Iteration
*/
?>
Aufgabe
Baue o.g. Code so um, dass die Schleife beim Startwert 1000 beginnt und der Startwert solange durch zwei geteilt wird, bis der Wert 5 unterschritten ist.
PHP-foreach-Schleife
Die foreach
-Schleife funktioniert nur bei Arrays und wird verwendet, um jedes Schlüssel/Wert-Paar in einem Array zu durchlaufen.
// Syntax
foreach ($array as $wert) {
Programm, das ausgeführt werden soll;
}
<?php
/*
Das folgende Beispiel gibt die Werte des angegebenen Arrays ($obst) aus
Bei jedem Schleifendurchlauf wird $wert der Wert des aktuellen Array-Elements zugewiesen
und der Array-Zeiger um eins weiterbewegt, bis das letzte Array-Element erreicht wurde
*/
$obst = array("Apfel", "Birne", "Zwetschge", "Kirsche");
foreach($obst as $wert) {
echo "$wert <br>";
}
/*
ERKLÄRUNG
$obst - enthält als Array die Werte, die durchlaufen werden sollen
$obst as $wert - setzt so oft fort, wie es Werte im Array $obst gibt
*/
// Array für die kommende Aufgabe:
$autos = array("BMW", "Audi", "Mercedes", "Opel", "VW");
?>
Aufgabe
Baue eine foreach-Schleife, die das Array $autos in einer HTML-Tabelle ausgibt. Jedes Auto soll dabei in einer eigenen Zeile stehen.
<?php
/*
Das folgende Beispiel gibt sowohl die Schlüssel als auch die Werte des angegebenen Arrays ($person) aus:
*/
$person = array("Markus"=>"35", "Franz"=>"37", "Martina"=>"43");
foreach($person as $name => $alter) {
echo "$name ist $alter Jahre alt<br>";
}
/*
ERKLÄRUNG
$person - enthält als Array die Schlüssel / Wert-Paare, die durchlaufen werden sollen
$person as $name => $alter - setzt so oft fort, wie es Schlüssel / Wert-Paare im Array $person gibt
*/
// Array für die kommende Aufgabe
$autos = array(
"BMW"=>"schwarz",
"Audi"=>"rot",
"Opel"=>"grün",
"VW"=>"weiß",
"Mercedes"=>"gelb",
"Skoda"=>"grau",
);
?>
Aufgabe
Baue eine foreach
-Schleife, die Schlüssel/Wert-Paare des Arrays $autos
in einzelnen <div>
Containern ausgegeben werden. Die Container sollen im Grid-Layout in 3 Spalten angeordnet sein.
PHP break & continue
Die break-Anweisung
Wir haben die break
-Anweisung im letzten Unterrichtsblock Nr. 4. bereits gesehen. Sie wurde verwendet, um aus einer switch
-Aussage „herauszuspringen“.
Die break
-Anweisung kann auch verwendet werden, um aus einer Schleife zu springen.
<?php
/*
Dieses Beispiel springt aus der Schleife heraus, wenn x gleich 4 ist:
*/
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
break;
}
echo "Zählerstand: $x <br>";
}
?>
Die continue-Anweisung
Die continue
-Anweisung unterbricht eine Iteration (in der Schleife), wenn eine bestimmte Bedingung eintritt, und fährt mit der nächsten Iteration in der Schleife fort.
<?php
/*
Dieses Beispiel überspringt den Wert 4 :
*/
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
continue;
}
echo "Zählerstand: $x <br>";
}
?>
break und continue in einer while-Schleife
break
und continue
können auch in while
-Schleifen verwendet werden:
<?php
/*
Beispiel mit der break-Anweisung
*/
$x = 0;
while($x < 10) {
if ($x == 4) {
break;
}
echo "Zählerstand: $x <br>";
$x++;
}
?>
<?php
/*
Beispiel mit continue-Anweisung
*/
$x = 0;
while($x < 10) {
if ($x == 4) {
$x++;
continue;
}
echo "Zählerstand: $x <br>";
$x++;
}
?>
Übungsaufgaben
1. Aufgabe
Erstelle eine Datei test.php und führe unterschriedliche Programme aus o.g. Beispielen durch. Verwende dabei verschiedene:
- break
- continue
-Anweistungen aus