PHP-Programmierung (Schleifen)

Programmschleifenarten in PHP

Kommen wir in diesem Artikel zu den Schleifen. Schleifen sind sich immer wiederholende Programmanweisungen, die auf Grund eines Kriteriums nach einer bestimmten Anzahl von Schleifendurchläufen enden. In PHP gibt es eine ganze Anzahl von möglichen Schleifen, um ein Programm Anweisungen wiederholen zu lassen.
Doch zuerst müssen wir noch ein wenig Mathematik machen…..

Zuweisung von Werten

Was passiert eigentlich, wenn man im Programm schreibt $ende = 10; Das Gleichheitszeichen verwirrt ein wenig, denn Gleichheit heißt, dass beide Seiten gleich seien. Nun das ist nach Ausführung des Statements auch richtig. Trifft das was eigentlich abgeht aber nicht ganz!
Das Gleichheitszeichen in PHP ist wie in vielen anderen Programmiersprachen auch keine Gleichheit, sondern ein „Ergibt-Zeichen“. Dies fällt zunächst einmal ein wenig schwer! Deshalb ein weiteres Beispiel:

$zaehler = $zaehler + 1;

Wie kann das sein? Das verwirrt evtl. fast jeden Mathematiker! Ist es Rekursion, ist es …..?????
Nein all das nicht. Wir haben hier einen Rechner, und Rechner haben nun mal Speicherplätze. Um mit einem Rechner rechnen zu können, muss man Daten im Speicher speichern! Und genau das macht die Ergibt-Anweisung $zaehler = 10;
Es wird die Konstante 10 auf den Speicherplatz gestellt, den ich jetzt halt mal $zaehler genannt habe! Und was ist mit dem komischen arithmetischen Ausdruck? Nun, da passiert genau das ähnliche: Es wird der Wert des Speicherplatzes mit Namen $zaehler genommen, und 1 hinzuaddiert! Das ganze wird dann über die Ergibt-Anweisung wieder auf den Speicherplatz mit dem
Namen $zaehler gespeichert. Damit hat dann der Speicherplatz einen Wert der um 1 höher ist als vorher! Klar?
Die Ausdrücke in der Programmiersprache sind also keine mathematischen Gleichungen, sondern nur Speicheranweisungen! Im Rechner selbst (also im Prozessor) passiert fast das, was oben beschrieben wurde. Es wird der Wert aus dem Speicherplatz $zaehler ins „Rechenwerk“ geladen, dort 1 darauf addiert und wieder auf den Speicherplatz geschrieben.

Damit wird dann auch klar, was z.B. $zaehler++; bedeuten könnte? Nun, es wird genau das Gleiche passieren wie bei $zaehler = $zaehler + 1; nur dass man es kürzer schreibt.

Doch kommen wir jetzt zu den Schleifenarten in PHP.

do … while

Diese Schleifenart hat, wie der Name schon sagt, immer mindestens einen Schleifendurchgang, da mit while das Schleifenende erst nach mindestens einem Durchlauf geprüft wird.

<PHP
$zaehler = 0; $ende = 10;
do {
  print(„<br>Zähler=“.$zaehler);
  $zaehler++;
} while ($zähler <= $ende)
?>

Hier werden also den Variablen $zaehler (man beachte kein deutscher Umlaut verwenden!!!) und $ende Werte zu gewiesen. Dann erfolgt mit print die Ausgabe der Variablen.
Die Variable $zaehler wird um genau 1 erhöht! Anschließend wird geprüft, ob die Variable $zaehler noch kleiner oder gleich der Variablen $ende ist, wenn ja, dann beginnt die Schleife genau bei dem do nochmals, ansonsten endet die Schleife!

while

Diese Schleifenart hat, wie der Name schon sagt, die Schleifenbedingung am Anfang. D.h. falls die Bedingung am Anfang schon nicht existiert, wird die Schleife überhaupt nicht durchlaufen:

<PHP
$zaehler = 0; $ende = 10;
while ($zähler <= $ende) {
  print(„<br>Zähler=“.$zaehler);
  $zaehler++;
}
?>

Wir haben also entweder keinen Schleifendurchlauf oder viele! Wichtig ist nur, dass die Schleife irgendwann endet! Man sieht hier auch schön, dass sich der sog. Schleifenrumpt, also das was in der Schleife ausgeführt werden soll, in {..} eingeschlossen und damit eingerückt wird.

for

Bei der for-Schleife wird die Bedingung auch am Anfang geprüft, aber hier wird eine sog. Zählschleife erstellt.:

<PHP
$ende = 10;
for ($zaehler = 0; $zaehler <= $ende; $zaehler++) {
  print(„<br>Zähler=“.$zaehler);
}
?>

Die for-Schleife zählt selbständig die Schleifendurchgänge. Nach for kommt die Schleifenvorschrift als Ansammlung von 3 Anweisungen. 1. Anfang des Schleifenzählers, 2. Endebedingung, 3. Inkrementierung des Schleifenzählers.

vorzeitige Schleifenbeendigung

Man kann bei den Schleifen diese auch vorab beenden, denn oft kann man gerade bei der Zählschleife nicht sagen, wie oft sie durchlaufen werden soll. Dazu gibt es 2 Möglichkeiten:
break; und continue;

<PHP
$zaehler = 0; $ende = 100;
while ($zähler <= $ende) {
  print(„<br>Zähler=“.$zaehler);
  $zaehler++;
  if($zaehler > 10) break;
}
?>

Hier wird nach 10 Durchläufen mit der if-Anweisung die Schleife zwangsweise unterbrochen. Diese Möglichkeit geht auch bei for- oder do-while Schleifen.
Mit der continue-Anweisung, lässt man das Programm sofort zu der Schleifenbedingung springen. D. h. man forciert das Prüfen der Schleifenbedingung!

<PHP
$zaehler = 0; $ende = 10;
while ($zähler <= $ende) {
  if($zaehler % 2 == 1) {
    $zaehler++;
    continue;
  }
  print(„<br>Zähler=“.$zaehler);
  $zaehler++;
}
?>

Jetzt zeigt die Schleife nur ungerade Zahlen! Bitte analysieren sie das mal auf einem Zettel, indem Sie sich die Zwischenergebnisse, die in $zaehler stehen genau aufzeichnen.

Wenn wir jetzt noch einiges über Felder und Variablen gelernt haben, können wir dann schon richtige Programme schreiben.

Gruß
Bernd Klüppelberg

Bisher gibt es keinen Kommentar. Schreiben Sie einen Kommentar!

Schreibe einen Kommentar