Ich lese gerade ein eBook über PHP, und der Autor bemerkte, dass der Unterschied zwischen einer while-Schleife und einer for-Schleife darin besteht, dass die for-Schleife zählt, wie oft sie ausgeführt wird.
Also nimm das:
%Vor%Aber wäre das nicht dasselbe wie
? %Vor%Oder gibt es einige andere Unterschiede, auf die er nicht hingewiesen hat? (Abgesehen von der Verwendung der while-Schleife, wenn Sie sich nicht sicher sind, wie lange die Bedingung bestehen bleibt, z. B. das Auswählen von Zeilen aus einer Datenbank)
Ich meine, wenn das der einzige Unterschied ist, kann ich nicht einfach die for-Schleife verwenden und stattdessen die while-Schleife verwenden?
Können Sie? Ja sicher. Aber ob oder nicht sollte eine ganz andere Frage sein.
Die for
-Schleife ist in diesem Szenario besser lesbar und ist definitiv die Konvention, die Sie praktisch in jeder Sprache mit loop-Anweisungen verwenden. Wenn Sie die while
-Schleife verwenden, werden sich die Leute wundern, warum Sie keine for
-Schleife verwendet haben.
Funktional sind Ihre zwei Beispiele gleich. Aber sie drücken unterschiedliche Absichten aus.
while
bedeutet 'Ich weiß nicht, wie lange diese Bedingung dauern wird, aber solange es so ist, mach das Ding.' for
bedeutet "Ich habe eine bestimmte Anzahl an Wiederholungen, die Sie ausführen können." Sie können einen verwenden, wenn Sie den anderen meinen, aber es ist schwieriger, den Code zu lesen.
for
hier vorzuziehen ist $i
zu einer lokalen Variable für die Schleife foreach
Ich persönlich verwende am häufigsten die Schleife in foreach
. Wenn Sie solche Dinge tun:
... dann versuche das:
%Vor%Schneller zu tippen, einfacher zu lesen.
Funktionell entspricht eine for
-Schleife einer while
-Schleife; das heißt, jeder kann als der andere ohne Änderung des Ergebnisses oder der Nebenwirkungen umgeschrieben werden. Jeder hat jedoch unterschiedliche Konnotationen. Eine while
-Schleife läuft, solange eine Bedingung gilt; Der Zustand ist statisch, obwohl sich die Umstände ändern. Eine for
Schleife läuft über eine Sequenz. Der Unterschied ist wichtig für Programmierer, aber nicht für Programme, ebenso wie die Wahl der Variablennamen für Programmierer wichtig ist, obwohl sie geändert werden können, um funktionell äquivalenten Code zu erzeugen. Ein Schleifenkonstrukt wird je nach Situation mehr Sinn machen als das andere.
Es ist eine Frage des Geschmacks, der persönlichen Vorlieben und der Lesbarkeit. Manchmal funktioniert eine while
-Schleife besser logisch. Manchmal, ein for
.
Wenn ich für meine persönliche Regel keinen Variableninitialisierer benötige, verwende ich while
.
Aber eine foreach
Schleife ist auf ihre Art nützlich.
Außerdem, im Falle von PHP's Scoping, wo alle Variablen, die nicht innerhalb von Funktionen sind, global sind, wird die Variable weiterhin nach der Schleife leben, egal welche Schleifensteuerung Sie verwenden.
Tags und Links php for-loop while-loop