Unterschied von while und do-while?
Björn
- php
0 MudGuard0 Thomas Meinike0 Axel Richter0 egal
Hallo an alle!
Ich versuche, mein Wissen in PHP gerade ein bisschen zu erweitern.
Dazu verwende ich, um den Anfang etwas zu verstehen, das Buch "PHP für Dummies", welches mir bisher recht gut geholfen hat.
Aber jetzt habe ich ein Problem bei der While-Schleife und der Do-While-Schleife!
Was genau ist der Unterschied zwischen den beiden?
Ich verstehe zwar, wie man beides umsetzt, aber es kommt mir vor, als wären beide Befehle identisch, vor allem, weil bei den Beispielaufgaben letztendlich dasselbe Ergebnis heraus kommt!
Gibt es zwischen den Befehlen unterschiede oder ist es identisch und einfach nur nach belieben verwendbar?
Liebe Grüße,
Björn
Hi,
Aber jetzt habe ich ein Problem bei der While-Schleife und der Do-While-Schleife!
Was genau ist der Unterschied zwischen den beiden?
die do-while-Schleife wird mindestens einmal durchlaufen, denn die Bedingung wird ja erst am Ende geprüft.
cu,
Andreas
Hi,
die do-while-Schleife wird mindestens einmal durchlaufen, denn die Bedingung wird ja erst am Ende geprüft.
Und ist das für irgendetwas gebräuchlich oder ist es egal ob durchlaufen wird oder nicht?
Hi,
die do-while-Schleife wird mindestens einmal durchlaufen, denn die Bedingung wird ja erst am Ende geprüft.
Und ist das für irgendetwas gebräuchlich oder ist es egal ob durchlaufen wird oder nicht?
Nein, es ist nicht egal.
Es ist dann brauchbar, wenn der Code in der Schleife mindestens einmal durchlaufen werden soll.
cu,
Andreas
Nein, es ist nicht egal.
Es ist dann brauchbar, wenn der Code in der Schleife mindestens einmal durchlaufen werden soll.
Achso, gut das habe ich verstanden, vielen Dank!
Hast du denn noch ein Beispiel, für do-while?
Weil ich habe zwar den Unterschied verstanden, aber auch bisher nur das Gefühl, nur while gebrauchen zu können (Das Kinobeispiel von dem anderen User war gut! :o))
Hallo,
Gibt es zwischen den Befehlen unterschiede oder ist es identisch und einfach nur nach belieben verwendbar?
Bei while wird die Bedingung am Anfang geprueft und ggf. sofort verlassen, bei do-while passiert das erst am Ende und muss somit mindestens ein Mal durchlaufen werden.
Es kommt also auf das konkrete Problem an.
MfG, Thomas
Hallo,
Es kommt also auf das konkrete Problem an.
Achso, vielen Dank!
Könntest du mir ein Beispiel nennen, damit ich eine kleine Vorstellung davon bekommen könnte?
Hi,
stell dir vor du hättest eine Menge von Namen in einer Tabelle gespeichert - ich schreib jetzt mal keine besondere Datenbanksprache sondern rein verbal. Sagen wir das sind Reservierungen für Kinovorstellungen, jedesmal nach einer Vorstellung wird die Liste geleert und füllt sich dann wieder von neuem. Jetzt sagen wir du wolltest eine Ausgabe machen, in der alle Anmeldungen ausgegeben werden, du willst also die Namen durchlaufen:
while (ein_weiterer_name_vorhanden)
schreibe_namen
Das klappt wunderbar:
Jetzt stell dir vor, du hättest eine do-while-Schleife:
do
schreibe_namen
while (ein_weiterer_name_vorhanden)
--> wenn die Namensliste leer wäre, würde schreibe_namen einen Fehler ergeben, weil kein Name zum schreiben da ist.
Anders herum kann es Situationen geben, in denen zunächst etwas gemacht werden muss _bevor_ man die Schleifenbedingung prüfen kann.
*mangels Kreativität fällt mir leider gerade nichts ein, ich hab die letzten 5 Jahre keinen "Post-Check-Loop" gebraucht.*
MfG
Rouven
Hallo,
Ich versuche, mein Wissen in PHP gerade ein bisschen zu erweitern.
Dazu verwende ich, um den Anfang etwas zu verstehen, das Buch "PHP für Dummies", welches mir bisher recht gut geholfen hat.Aber jetzt habe ich ein Problem bei der While-Schleife und der Do-While-Schleife!
Was genau ist der Unterschied zwischen den beiden?
Ich verstehe zwar, wie man beides umsetzt, aber es kommt mir vor, als wären beide Befehle identisch, vor allem, weil bei den Beispielaufgaben letztendlich dasselbe Ergebnis heraus kommt!Gibt es zwischen den Befehlen unterschiede oder ist es identisch und einfach nur nach belieben verwendbar?
Den grundsätzlichen Unterschied haben Dir Andreas und Thomas schon erklärt. Man spricht da übrigens von kopfgesteuerten Schleifen (while...) und fussgesteuerten Schleifen (do...while).
Die beiden folgenden Schleifen verhalten sich fast gleich. Nur, wenn man als gesuchten Anfangsbuchstaben "A" wählt, verhalten sie sich völlig unterschiedlich.
var arr = new Array("Adam", "Bertram", "Cäsar", "Dieter");
var Anfangsbuchstaben = "C"
//Kopfgesteuerte Schleife
var i = 0;
while (arr[i].indexOf(Anfangsbuchstaben)!=0) {
alert(arr[i]);
i++;
}
alert("fertig bei " + arr[i]);
//Fussgesteuerte Schleife
i = 0;
do {
alert(arr[i]);
i++;
} while (arr[i].indexOf(Anfangsbuchstaben)!=0)
alert("fertig bei " + arr[i]);
Der Code ist JavaScript.
viele Grüße
Axel
Den grundsätzlichen Unterschied haben Dir Andreas und Thomas schon erklärt. Man spricht da übrigens von kopfgesteuerten Schleifen (while...) und fussgesteuerten Schleifen (do...while).
naja... Ich hab gelernt, dass das vorprüfende und nachprüfende Schleife heißt! Fußgesteuert hört sich eher etwas merkwürdig an...