Informatikwiki

Albert Einstein Gymnasium Reutlingen

Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:phplektion04

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
php:phplektion04 [01.12.2010 16:01] Stefan Gaumphp:phplektion04 [07.11.2014 13:15] (aktuell) – gelöscht Stefan Gaum
Zeile 1: Zeile 1:
-[[php:phplektion03.1|PHP-Zwischenübung]] 
- 
-====== Schleifen ====== 
- 
-Verschiedene Vorgänge benötigen mehrere Durchgänge, bis ein bestimmter Zustand erreicht ist. 
- 
-===== while-Schleifen ===== 
- 
-Zum Beispiel kann man, um die Zahlen 1 bis 10 auszugeben folgenden PHP-Code verwenden: 
- 
-  <?php 
-  echo "1 <br />"; 
-  echo "2 <br />"; 
-  echo "3 <br />"; 
-  echo "4 <br />"; 
-  echo "5 <br />"; 
-  echo "6 <br />"; 
-  echo "7 <br />"; 
-  echo "8 <br />"; 
-  echo "9 <br />"; 
-  echo "10 <br />"; 
-  ?> 
- 
-Der verwendete Befehl ist stets derselbe (''echo''), nur das Argument ändert sich bei jedem Aufruf (Die Zahl ist eins größer als zuvor). Diesen Effekt kann man mit einer **while**-Schleife erreichen: 
- 
-  <?php 
-  $i = 1; 
-  while ($i <= 10) { 
-    echo $i . "<br />";  // es wird $i ausgegeben, 
-    $i++;  // Wert wird um 1 erhöht 
-  } 
-  ?> 
- 
-Dabei werden alle Befehle im **Schleifenblock** (innerhalb der geschweiften Klammern) solange wiederholt, wie die Bedingung im Argument ($i < = 10) wahr ist. Das Beisplie zeigt eine **kopfgesteuerte** while-Schleife. 
- 
-''$i++'' ist der sogenannte Inkrement Operator, er erhöht die Variable ''$i'' um eins. Alternativ und länger könnte man ''$i=$i+1;'' schreiben. 
- 
-{{:htmlcss:work_64.png|}} **Variabler Zähler** 
- 
-Erstelle eine Seite mit Formular und ein php-Skript, mit der man durch Eingabe einer Zahl bestimmen kann, bis zu welcher Zahl das Skript "zählt". 
- 
- 
-==== Fußgesteuerte while-Schleife ==== 
- 
-Manchmal möchte man erreichen, dass der Schleifenblock mindestens einmal durchlaufen wird, sogar dann, wenn die Bedingung von Beginn an nicht erfüllt ist. Dies kann man mit einer fußgesteuerten while-Schleife erreichen: 
- 
-  <?php 
-  $i = 11; 
-  do { 
-    echo $i . "<br />";  // es wird $i ausgegeben, 
-    $i++;  // Wert wird um 1 erhöht 
-  } while ($i <= 10); 
-  ?> 
- 
-Hier wird die Bedingung am Ende überprüft, der Schleifenblock läuft mindestens einmal durch. 
- 
-{{:htmlcss:work_64.png|}} **Variabler Zähler II** 
- 
-Ändere dein Skript von oben so ab, dass es eine fußgesteuerte Schleife verwendet.  
- 
-==== Continue und Break ==== 
- 
-Der Verlauf einer Schleife kann neben der Schleifenbedingung noch anders gesteuert werden.  Für Schleifen gibt es jedoch noch die speziellen Ausdrücke continue und break. 
- 
-**break** - beendet an der aktuellen Stelle die Schleife und führt dann den folgenden PHP-Code aus, so als würde die Schleifenbedingung false ergeben (selbst wenn dies nicht der Fall wäre). 
- 
-      <?php 
-      while (...) { 
-       
-        
-          break; // ---> 
-                 //     | 
-                 //     V 
-      }    
-                // <--- 
-      ?> 
- 
-**continue** - überspringt den aktuellen Schleifendurchlauf und beginnt mit dem nächsten. Er springt dabei zum Ende des Schleifenrumpfs. Für For-Schleifen bedeutet dies auch, dass die Durchlaufanweisung ausgeführt wird (für den nächsten Durchlauf), für Do-While-Schleifen bedeutet dies, dass die Schleifenbedingung geprüft wird (und auch für While-Schleifen, aber da erst im Beginn des darauf folgenden Schleifendurchlaufs). 
- 
-      <?php 
-      // keine Endlosschleife wie vielleicht vermutet 
-      do {          //   < - - - 
-                    //          | Nicht wie erwartet 
-                    //          | 
-          continue; // --->  - - 
-                    //     | 
-                    //      Dies ist der Weg von continue 
-                    // <--- 
-      } while(false); 
-      ?> 
- 
-Eine if-Abfrage kann auf diese Weise nicht verlassen (oder sogar neu durchlaufen) werden da eine if-Abfrage kein Schleifenkonstrukt ist. Sowas wie if (...) { .... break; ...} wird nur klappen wenn das ganze in einer Schleife steht und somit das break auf die Schleife angewendet werden kann. 
-  
-{{:htmlcss:work_64.png|}} **Variabler Zähler mit break** 
- 
-Bearbeite das folgende Beispiel und wende es in deinem variablen Zähler an. 
- 
-  <?php 
-  $i = 11; 
-  do 
-  { 
-    if ( $i > 10 ) 
-    { 
-        echo "i ist bereits größer als 10"; 
-        break; 
-    } 
-    
-    echo $i . "<br />";  // es wird $i ausgegeben, 
-    $i++;  // Wert wird um 1 erhöht 
-  } while ($i <= 10); 
-  ?> 
- 
-===== for-Schleifen ===== 
- 
-Eine for-Schleife kann man immer dann einsetzen, wenn man zuvor bereits weiß, wie oft ein Vorgang wiederholt werden soll: 
-  
-  <?php 
-  for ($i = 1; $i <= 10; $i++) 
-  { 
-    echo $i . "<br />"; 
-  } 
- 
-For-Schleifen kommen seltener zum Einsatz, da Sie unflexibler sind als while-Schleifen. 
- 
-{{:htmlcss:work_64.png|}} **Variabler Zähler III** 
- 
-Schreibe dein Skript als for-Schleife. Ändere das Programm so, dass die Schleife unabhängig von der Formulareingabe bei 100 verlassen (break) wird und die Zahlen von 31 bis 40 überspringt (continue). 
- 
-[[php:phplektion05|PHP Lektion 5]] 
  
php/phplektion04.1291219313.txt.gz · Zuletzt geändert: 01.12.2010 16:01 von Stefan Gaum

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki