PHP - Do...While-Schleife: Ein Anfängerleitfaden

Willkommen, ambitionierte Codierer! Heute tauchen wir in die aufregende Welt der PHP-Schleifen ein, insbesondere die Do...While-Schleife. Als dein freundlicher Nachbarschafts-Computerlehrer bin ich hier, um dich durch dieses Konzept mit vielen Beispielen und Erklärungen zu führen. Also, hol dir dein virtuelles Notizbuch und los geht's mit dem Schleifen!

PHP - Do…While Loop

Was ist eine Do...While-Schleife?

Bevor wir uns den Beispielen zuwenden, lassen wir uns verstehen, was eine Do...While-Schleife ist. Stell dir vor, du spielst ein Spiel, bei dem du eine Würfel so lange werfen musst, bis du eine Sechs bekommst. Du wirst den Würfel mindestens einmal werfen, oder? Genau so funktioniert eine Do...While-Schleife!

Eine Do...While-Schleife führt einen Block von Code mindestens einmal aus, bevor sie überprüft, ob eine Bedingung wahr ist. Wenn die Bedingung wahr ist, führt sie den Block wiederholt aus, bis die Bedingung falsch wird.

Nun schauen wir uns die Syntax an:

do {
// Auszuführender Code
} while (Bedingung);

Beispiel 1: Grundlegende Do...While-Schleife

Lassen wir mit einem einfachen Beispiel beginnen:

<?php
$i = 1;
do {
echo "Die Zahl ist: $i <br>";
$i++;
} while ($i <= 5);
?>

Was passiert hier?

  1. Wir initialisieren eine Variable $i mit dem Wert 1.
  2. Die Schleife beginnt mit do und gibt den aktuellen Wert von $i aus.
  3. Wir erhöhen $i um 1 mit $i++.
  4. Nach dem schließenden Klammern haben wir die while-Bedingung. Sie überprüft, ob $i kleiner oder gleich 5 ist.
  5. Wenn die Bedingung wahr ist, continues die Schleife; wenn falsch, stoppt sie.

Ausgabe:

Die Zahl ist: 1
Die Zahl ist: 2
Die Zahl ist: 3
Die Zahl ist: 4
Die Zahl ist: 5

Beispiel 2: Do...While-Schleife mit Benutzereingabe

Lassen wir die Dinge interaktiver! Wir erstellen ein einfaches Ratespiel:

<?php
$secretNumber = 7;
do {
$guess = (int)readline("Rate die Zahl (zwischen 1 und 10): ");
if ($guess < $secretNumber) {
echo "Zu niedrig! Versuche es nochmal.\n";
} elseif ($guess > $secretNumber) {
echo "Zu hoch! Versuche es nochmal.\n";
}
} while ($guess != $secretNumber);

echo "Glückwunsch! Du hast es erraten!";
?>

In diesem Beispiel:

  1. Wir setzen eine Geheimzahl (7 in diesem Fall).
  2. Die Schleife bittet den Benutzer um eine Zahl.
  3. Sie gibt Feedback, ob die Zahl zu niedrig oder zu hoch ist.
  4. Die Schleife continues, bis die richtige Zahl erraten wird.

Dies zeigt, wie Do...While-Schleifen für Eingabevalidierung und das Erstellen einfacher Spiele verwendet werden können!

Beispiel 3: Dateilesen mit Do...While-Schleife

Lassen wir uns ein praktischeres Beispiel ansehen - Zeilen aus einer Datei lesen:

<?php
$file = fopen("sample.txt", "r");

do {
$line = fgets($file);
if ($line !== false) {
echo $line . "<br>";
}
} while ($line !== false);

fclose($file);
?>

Was passiert hier?

  1. Wir öffnen eine Datei namens "sample.txt" im Lesemodus.
  2. Die Schleife liest eine Zeile aus der Datei mit fgets().
  3. Wenn die Zeile nicht falsch ist (d.h. nicht das Ende der Datei), geben wir sie aus.
  4. Die Schleife continues, bis wir das Ende der Datei erreichen.
  5. Schließlich schließen wir die Datei.

Dieses Beispiel zeigt, wie Do...While-Schleifen für Dateioperationen nützlich sein können!

Zähler in einer "do...while" Schleife verringern

Nun zählen wir rückwärts mit einer Do...While-Schleife:

<?php
$countdown = 5;

do {
echo "T-minus $countdown...<br>";
$countdown--;
} while ($countdown > 0);

echo "Start! ?";
?>

In dieser kosmischen Countdown:

  1. Wir starten mit $countdown auf 5.
  2. Die Schleife gibt die aktuelle Countdown-Zahl aus.
  3. Wir verringern $countdown mit $countdown--.
  4. Die Schleife continues, solange $countdown größer als 0 ist.
  5. Wenn wir 0 erreichen, starten wir!

Ausgabe:

T-minus 5...
T-minus 4...
T-minus 3...
T-minus 2...
T-minus 1...
Start! ?

Zeichenkette in umgekehrter Reihenfolge durchlaufen

Lassen wir uns kreativ und eine Zeichenkette in umgekehrter Reihenfolge mit einer Do...While-Schleife umkehren:

<?php
$str = "Hello, World!";
$length = strlen($str) - 1;

do {
echo $str[$length];
$length--;
} while ($length >= 0);
?>

Was passiert hier?

  1. Wir starten mit der Zeichenkette "Hello, World!".
  2. Wir erhalten den letzten Index der Zeichenkette (Länge - 1).
  3. Die Schleife gibt jedes Zeichen ab dem Ende aus.
  4. Wir verringern den Index in jeder Iteration.
  5. Die Schleife continues, bis wir das erste Zeichen erreicht haben.

Ausgabe:

!dlroW ,olleH

Geschachtelte "do...while" Schleifen

Schließlich erkunden wir geschachtelte Do...While-Schleifen mit einem spaßigen Muster:

<?php
$i = 1;
do {
$j = 1;
do {
echo "* ";
$j++;
} while ($j <= $i);
echo "<br>";
$i++;
} while ($i <= 5);
?>

Lassen wir das auseinandernehmen:

  1. Die äußere Schleife kontrolliert die Anzahl der Zeilen (5 in diesem Fall).
  2. Die innere Schleife gibt Sterne in jeder Zeile aus.
  3. Die Anzahl der Sterne in jeder Zeile entspricht der Zeilennummer.
  4. Wir verwenden <br>, um nach jeder Zeile eine neue Zeile zu beginnen.

Ausgabe:

*
* *
* * *
* * * *
* * * * *

Methoden-Tabelle

Hier ist eine Tabelle, die die Methoden zusammenfasst, die wir in unseren Beispielen verwendet haben:

Methode Beschreibung
echo Gibt eine oder mehrere Zeichenketten aus
readline Liest eine Zeile aus der Benutzereingabe
fopen Öffnet eine Datei oder URL
fgets Holt eine Zeile aus dem Dateizeiger
fclose Schließt einen geöffneten Dateizeiger
strlen Gibt die Länge einer Zeichenkette zurück

Und das war's, Leute! Wir haben durch die Do...While-Schleife in PHP geloopt. Denke daran, Übung macht den Meister, also weiter codieren und mit diesen Schleifen experimentieren. Bereit für die nächste Herausforderung! Happy Coding! ??

Credits: Image by storyset