While Schleifen

Schleifen in PHP

Beim programmieren, möchten wir oft besimmte Dinge mehrmals ausführen. Ein denkbares Szenario ist es, alle Elemente des Kundenarray aus dem vorherigen Abschmitt über Arrays auszugeben.

Kopfgesteuerte while Schleife

Die einfachste Art einer Schleife ist die while Schleife. Schleifen laufen solange bis die Abbruchbedigung erfüllt ist, diese ist ein bool Wert.

In der Regel ist dieser Boolwert das Ergebnis der Auswertung eines logischen Ausdrucks.

Es gibt zwei Unterarten der while Schleife, häufiger braucht man eine kopfgesteuerte while Schleife, manchmal braucht man aber auch eine fussgesteuerte while Schleife.

 

Kopfgesteuerte while Schleife

Die denkbar einfachste while Schleife wäre folgende:

<?php
  while(true)
?>

Diese Schleife ist jedoch vollkommen sinnlos. Denn es ist eine Endlosschleife, die Bedigung zum ausführen ist immer erfüllt. Der PHP Interpreter wird dieses Skript solange ausführen bis die maximale Ausführungszeit abgelaufen ist und einen Fehler ausgeben.

 

ähnliche Beispiele sind:

while(1 == 1)

while(3 < 5)


Diese Bedingungen sind immer "wahr" die Schleife bricht also nie ab. Um das zu erreichen müssen wir also in der Schleife etwas machen,was die Bedingung von "wahr" zu "falsch" macht.

 

Die Syntax der while Schleife ist:

while(bool)
   Anweiung;

Wenn wir mehrere Anweisungen ausführen möchten müssen wir die Anweisungen zu einem Block zusammenfassen. Diese Zusammenfassung machen wir mit den geschweiften Klammern {}

 

Angenommen wir möchten alle Zahlen von 0 bis 9 ausgeben wie sieht unsere Schleife dann aus?

<?php
   //Variable i auf 0 setzen
   $i = 0;

   //Schleifenbedingung
   while($i < 10) {
      // i ausgeben
      echo $i;
      // i um 1 erhöhen
      $i++;
   }
?>

Fussgesteuerte while Schleife

Die fussgesteuerte while Schleife ist ähnlich wie die Kopfgesteurerte. Der einzige Unterschied ist, das der Anweisungsblock aufjedenfall einmal ausgeführt wird. Es gibt Situationen in denen man das braucht.

 

Hier der generelle Aufbau:

do{
   //Anweisung;
} while(Bedingung); 

Navigation