Dem Wortlaut nach erklärt sich diese Schleife fast von selbst. Aufpassen sollte man aber immer! Diese Schleife wartet auf eine Bedingung und läuft dann solange, bis eine andere Bedingung ihr Ende vorsieht. Die letzte Bedingung muss immer vorgegeben sein, da sie sonst endlos läuft.

Viele Abstürze gängiger Programme haben irgendwie mit dieser Schleife zu tun. Es reicht aber nicht, irgendeine Bedingung pro forma schnell einzubauen, man sollte sie so wählen, daß sie zu erfüllen ist. Also etwa eine Begrenzung des Ablaufs. Vielleicht denken sie sogar vorher an den Abbruch, bevor sie über den Ablauf nachdenken?

Natürlich kann die do... while... Schleife an andere Bedingungen gekoppelt werden. Nebenstehende Grafik kann auf all diese Möglichkeiten aber nicht eingehen.

if... else...  |  for... Schleife  |   Strings in do... while... aufnehmen

  bis 50

Die while Schleife kennt nur eine Bedingung. Diese kann zwar mit logischem UND und ODER gekoppelt werden, bleibt aber eine einzige Bedingung.

Die Ausführung läuft sobald und solange die Bedingung erfüllt ist!

Begrenzen Sie also die while Schleife, obwohl gute Compiler und Browser nach etwa 20 Sekunden dem Treiben ein Ende setzen würden.

  Start   Ende
Neben ein paar Bedingungen für falsche Eingaben ist der grundlegendste Unterschied natürlich die while Schleife an sich:

while ( anf < 50 ) wurde hier zu while ( a < b ) verändert und so steht a für den Start und b für das Ende.

Auch hier treten die while und die if Anweisung wieder gekoppelt auf.

Wichtig ist, daß die if Anweisung als Abbruch der while Schleife dient, was obige Graphik verdeutlichen soll.

Der eigentliche Zählvorgang - also a := a + 1 - steht wieder unter der Bedingung mit while. Falls die Reihenfolge vertauscht wird, erfolgt zwar pro forma eine Meldung aber die Variablen werden zum aufsteigenden Zählen vertauscht.

Dreh- und Angelpunkt ist der Parameter des Zeigers. Dieser ist zwar belegbar aber nicht frei belegbar. Die while Anweisung sorgt dafür, solange die gleiche Meldung samt Möglichkeit zur Eingabe auszugeben, bis dieser weder negativ noch grösser als 10 ist.

Die while Schleife ist den beiden for Schleifen einfach vorangestellt. Erst nachdem der Ablauf diese verlassen hat, werden die Zählroutinen abgearbeitet. Weitere if... else... Bedingungen sind hier nicht nötig.

Pointer und Parameter  |  Die for Schleife

Startseite  |  Hinweise und Impressum  |  Facebook  |  Twitter  |  Google plus