phpbar.de logo

Mailinglisten-Archive

[php] Unterschied zwischen While und For

[php] Unterschied zwischen While und For

Ulf Wendel UW_(at)_NetUSE.DE
Mon, 17 Jan 2000 18:14:43 +0100


"Rene Paschold (Connect GmbH)" wrote:
> 
> ich habe mal eine kleine Frage: Was ist der Unterschied
> zwischen den beiden Schleifen For und While?
> Wann setzt man welche Schleife ein?

While und For sind zwei komplette unterschiedliche
Sprachkonstrukte. 

+++ for +++

for (expr1; expr2; expr3) statement,
http://www.php.net/manual/html/control-structures.for.html

Betrache die Examples. expr1..3 kann beliebigen PHP-Code
aufnehmen. expr1 wird einmalig bei Eintritt in die Schleife
ausgewertet, expr2 ist die Abbruchbedingung und expr3 beschreibt,
was bei jedem Duchlauf passieren soll. Alle drei Expressions
dürfen leer sein.

For wird typischerweise verwendet, wenn die Abbruchbedingung:
  - wenn alle drei expressions mit einem sinnvollen Wert belegt
werden kännen
 (- die Abbruchbedingung konstant bleibt)

Klassisch ist: 

for ($i=0; $i<10; $i++) {
  echo "$i<br>\n";
}

oder:

for ($i=0; $i<count($daten); $i++) {
  echo $daten[$i], "<br>\n";
}	

+++ while +++

while (expr) statement,
http://www.php.net/manual/html/control-structures.while.html

Im Unterschied zu for sieht man eine expression, die ähnlich wie
expr2 bei for als Abbruchbedingung dient. Bei einfachen
Anwendungen ist es Jacke wie Hose ob man for oder while
verwendet.

$i=0;
while ($i<10) {
  $i++;
  echo "$i<br>\n";
}

While wird typischerweise verwendet, wenn:
  - keine oder viele initiale Expressions notwendig werden
(unübersichtlich in for)
  (- die Abbruchbedingung variabel ist)

+++ do ... while +++

Identisch zu while, mit dem feinen Unterchied, daß mindestens ein
Durchlauf erfolgt, weil die Abbruchbedingung man Ende liegt. 

+++ while to for +++

Jeder mag selbst entscheiden, was wann beser lesbar ist. Z.B.
hier:
for (;; echo "Endlos")  <=> while (1) echo "Endlos"

Ulf

-- 
Ulf Wendel
NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany
Fon: +49 431 386435 00  --  Fax: +49 431 386435 99


php::bar PHP Wiki   -   Listenarchive