====== Schleifen ====== ===== Einfache Schleifen ===== ==== 1 bis 100 ==== Erläuterung: Mit dem Befehl ''for'' wird eine Schleife eingeleitet. Das bedeutet, dass der Code, der in den anschließenden geschweiften Klammer steht, mehrmals ausgeführt werden soll. Wie oft das geschieht, legen die Ausdrücke in den runden Klammer fest. Die Bedeutung der 3 Elemente in der runden Klammmer: * Variabel und Startwert: Der Server soll zählen. Die Zahl, an der er sich gerade befindet, muss er sich natürlich merken. Dies tut er mit Hilfe einer Variablen, deren Name und erster Wert hier festgelegt wird. Die hier verwendete Variable heißt f und ihr Startwert beträgt Eins. Das Dollarzeichen vor f benötigt PHP um erkennen zu können, dass es sich um eine Variable handelt. * Die Solange-Bedingung: Hier wird festgelegt, wie lange die Schleife fortgeführt werden soll. In diesem Fall wird der Inhalt der Schleife wiederholt, solange $f kleiner oder gleich 100 ist. Man beachte den Unterschied zu: Es wird etwas wiederholt bis $f gleich 100 ist. Tauscht man den Ausdruck also gegen $f=100 aus, so wird die Schleife gar nicht ausgeführt, weil zu Beginn $f gleich 1 ist und er weitermacht, solange (!) $f gleich 100 ist. Und bekanntlich ist 1 nicht gleich 100... * Im dritten Ausdruck wird festgelegt, wie der Inhalt der Schleifenvariable nach jedem Durchlauf geändert werden soll. Das ++ gibt an, dass der Inhalt der Variablen $f um Eins vergrößert wird. Ein andere Schreibweise dafür lautet: $f=$f+1 Der ''echo'' Befehl gibt den Ausdruck schließlich aus. D.h., das, was der echo-Befehl ausgibt, landet in der HTML-Datei, die der Browser erhält. ===== Lottoschein-Aufgaben ===== ==== Lottoschein mit nur einer for-Schleife ==== Möchte man einen Lottoschein drucken (also die Zahlen, die beim Lotto angekreuzt werden können ausgeben), gibt es mindestens die folgenden Möglichkeiten. Verwendet man nur eine einzige Schleife, so werden die Zahlen entweder alle untereinander oder alle nebeneinander ausgegeben. Sollen jedoch immer 7 Zahlen in eine Zeile, so muss ein Zeilenumbruch an der passenden Stelle ausgegeben werden. Bei den Zahlen von 1 bis 49 ergibt sich die Position für ein ''
'' durch einen Rest von 0 bei der Division durch 7. Die Zeile mit dem ''if'' gibt also immer genau dann einen Zeilenumbruch aus, wenn bei der Division der Schleifenvariablen durch 7 der Rest gleich Null ist. Der Sourcecode: for ($i=1; $i<=49; $i++) { echo " $i"; if ($i % 7 == 0) { echo "
"; } }
Das Resultat: for ($i=1; $i<=49; $i++) { echo " $i"; if ($i % 7 == 0) { echo "
"; } }
==== Lottoschein mit verschachtelten Schleifen ==== Die vielleicht etwas elegantere Methode besteht in der Verwendung zweier Schleifen, die ineinander verschachtelt sind. Die äußere Schleife hat die Aufgabe, die einzelnen Zeilen der Reihe nach durchzuzählen, während die andere für jede einzelne Zeile die Spalten der Reihe nach durchgeht. Der Sourcecode: for ($Zeile=0; $Zeile<=6; $Zeile++) { for ($Spalte=1; $Spalte<=7; $Spalte++) { $Zahl = 7 * $Zeile + $Spalte; echo (" $Zahl "); } echo "
"; }
Das Resultat: for ($Zeile=0; $Zeile<=6; $Zeile++) { for ($Spalte=1; $Spalte<=7; $Spalte++) { $Zahl = 7 * $Zeile + $Spalte; echo (" $Zahl "); } echo "
"; }
==== Lottoschein in einer HTML-Tabelle ==== Um die Ausgabe zu verschönern, können die Zahlen in eine Tabelle geschrieben werden. Der Sourcecode: echo ("\n".''); for ($Zeile=0; $Zeile<=6; $Zeile++) { echo (""); for ($Spalte=1; $Spalte<=7; $Spalte++) { $Zahl = 7 * $Zeile + $Spalte; echo (" "); } echo ("\n"); } echo ("\n
$Zahl
");
Und das Resultat: echo ("\n".''); for ($Zeile=0; $Zeile<=6; $Zeile++) { echo (""); for ($Spalte=1; $Spalte<=7; $Spalte++) { $Zahl = 7 * $Zeile + $Spalte; echo (" "); } echo ("\n"); } echo ("\n
$Zahl
");