SelfGTR Logo KapitelseiteSelfGTR KapitelseiteKontrollfunktionen KapitelseiteSchleifen
TextseiteSchleifen definieren
vorige SeiteTextseiteAllgemeines TextseiteSchleifen unterbrechennächste Seite
 
Gliederung:Folgende Themen werden behandelt:
zum Anfanghochrunter

1. Zählschleifen ( For ~ To ~ Step ~ Next )

Bei Zählschleifen wird eine Variable bei jedem Schleifendurchlauf vergrößert oder verkleinert.
Die Steuervariable beginnt mit dem Wert der Startvariable und wird mit jedem Schleifendurchlauf mit dem Schrittwert addiert.
Ein negativer Schrittwert bewirkt also, dass die Steuervariable immer kleiner wird. Durch Weglassen des Schrittwertes wird der Schritt auf 1 eingestellt.
Wenn die Steuervariable den Endwert erreicht oder darüber hinaus läuft, wird die Schleife beendet.

Ort:For
To
Step
Next

Syntax:For StartwertSteuervariable To Endwert {Step Schrittwert} Operationsbefehl <Befehle innerhalb der Schleife> Operationsbefehl Next

Parameter:Startwert: Anfangswert der Steuervariable: Wert oder Variable
Steuervariable: Variable, die erhöht oder verkleinert werden soll: Buchstabe (A-Z sowie r und )
Endwert: Endwert der Steuervariable: Wert oder Variable
Schrittwert: Summand der Steuervariable: Wert oder Variable

Beispiel:ClrText
"SUCHWERT"?W
"INDEX:"
For 1A To Dim List 1
List 1[A]=WLocate 9,5,A
Next

Die typischste Anwendung von For-Schleifen ist das Iterieren von Datenstrukturen.
Hier wird Liste 1 nach einem bestimmten Wert durchsucht. Sollte dieser Wert gefunden werden wird der entsprechende Index ausgegeben.


Beispiel:ClrText
"VOR LANGER ZEIT ..."
"DA WAR EINMAL ..."
For 1A To 200:Next
ClrText
"... TIEF IM WALD ..."

Eine leere For-Schleife läuft einfach durch ohne irgendetwas auszuführen. So können Sie das Programm künstlich verlangsamen.
In diesem Fall soll der Text nach einer gewissen Zeit "weitergescrollt" werden, ohne dass der Benutzer eine Taste drücken muss.



zum Anfanghochrunter

2. anfangsgeprüfte Schleifen ( While ~ WhileEnd )

Bei While- Schleifen steht am Anfang der Schleife eine Bedingung. Solange diese Bedingung zutrifft (Rückgabewert ungleich 0), wird die Schleife erneut ausgeführt.
Ist die Bedingung nicht mehr erfüllt (Rückgabewert gleich 0), wird sofort ans Schleifenende gesprungen. Das heißt also, dass der Schleifeninhalt das letzte Mal nicht mehr interpretiert wird.

Ort:While
WhileEnd

Syntax:While Wert Operationsbefehl <Schleifeninhalt> Operationsbefehl WhileEnd

Parameter:Wert: beliebiger (Rückgabe-)Wert

Beispiel:0C
While C=0
Getkey
Ans=791C
Ans=692C
Ans=593C
WhileEnd

Es wird solange auf eine Eingabe gewartet, bis der Benutzer , oder drückt. Welche dieser Tasten gedrückt wurde, kann anschließend über C ausgelesen werden.



zum Anfanghochrunter

3. endgeprüfte Schleifen ( Do ~ LpWhile )

Bei Do- Schleifen steht am Ende der Schleife eine Bedingung. Solange diese Bedingung zutrifft (Wert ungleich 0), wird die Schleife erneut ausgeführt. Ist die Bedingung nicht mehr erfüllt (Wert gleich 0), wird der Schleifeninhalt noch ein letztes Mal ausgeführt.

Ort:Do
LpWhile

Syntax:Do Operationsbefehl <Schleifeninhalt> Operationsbefehl LpWhile Wert

Parameter:Wert: beliebiger (Rückgabe-)Wert

Beispiel:ClrGraph
ViewWindow -6.3,6.3,1,-3.1,3.1,1
AxesOn
Do
?N:?U
2N-U
Orange Horizontal Ans
LpWhile Ans3
"FERTIG"

Dieses Beispiel hat keinen tieferen Sinn. Es verdeutlicht aber, dass es Situationen gibt, in denen ein zu prüfender Wert am Anfang der Schleife noch nicht existiert und so die Bedingung ans Ende verlagert werden muss.



zum Anfanghochrunter

4. Sprungschleifen ( Lbl ~ Goto )

Sprungschleifen sind im engeren Sinne keine Schleifen. Da man mit ihnen allerdings schleifenähnliches Verhalten programmieren kann müssen sie an dieser Stelle mit erwähnt werden.
Bei Sprungschleifen liegt das Sprungziel oberhalb des Sprungbefehls, so dass dieser nach dem Sprung wieder abgearbeitet wird und erneut zum Sprungziel springt usw.

Beispiel:ClrText
Lbl A
"CODE"?A
A12Goto A

Dies ist eine simple Passwortabfrage, die man seinem Programm voranstellen kann.
Solange man nicht 12 eingibt, wird man immer wieder zu einer Eingabe aufgefordert.



zum Anfanghochrunter

SelfGTR Version 5.23 vom 04.10.2007© 2002 - 2007 Ronny Scholz