Der FoxPro-Kompatible Skriptinterpreter
🔎
Newsletter
Der FoxPro-Kompatible Skriptinterpreter

do while

DO WHILE markiert den Anfang einer DO-WHILE-Schleife. Das Ende der Schleife wird durch die Anweisung ENDDO markiert. Innerhalb dieses Blockes wird durch die Bedingung im Schleifenkopf festgelegt, wie lange der Programmblock wiederholt wird.

DO WHILE <LoopCondition>
  <...StatementList>
  [LOOP]
  [EXIT]
ENDDO

Beispiel Endlosschleife

Die folgende Schleife wird endlos ausgeführt und führt zu einer hängenden Anwendung, illustriert aber sehr gut die einfache Version einer Schleife:

  1
  2
  3
  4
DO WHILE .T.
  ? "Dieser Text wird so lange auf dem Bildschirm ausgegeben" + ;
    "bis jemand den Prozess abbricht."
ENDDO

Dieser Text wird so lange auf dem Bildschirm ausgegeben
bis jemand den Prozess abbricht.
Dieser Text wird so lange auf dem Bildschirm ausgegeben
bis jemand den Prozess abbricht.
...

Vorzeitiges Beenden der Schleife

Die Schleife kann vorzeitig beendet werden, wenn innerhalb des des Programmblocks das Schlüsselwort EXIT verwendet wird.

  1
  2
  3
  4
  5
DO WHILE .T.
  ? "Anfang der Schleife"
  EXIT
  ? "Ende der Schleife"
ENDDO

Anfang der Schleife

Vorzeitiges Wiederholen der Schleife

Die Schleife kann vorzeitig wiederholt werden, wenn innerhalb des des Programmblocks das Schlüsselwort LOOP verwendet wird.

  1
  2
  3
  4
  5
  6
  7
  8
  9
= 1
DO WHILE m.i < 10 
  IF m.i < 8
    i = m.i + 1
    LOOP
  ENDIF
  ? m.i
  i = m.i + 1
ENDDO

8
9