| | | | Gliederung: | Folgende Themen werden behandelt: |
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.
| Syntax: | For Startwert Steuervariable 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 1 A To Dim List 1 List 1[A]=W Locate 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 1 A 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. |
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.
| Syntax: | While Wert Operationsbefehl <Schleifeninhalt> Operationsbefehl WhileEnd |
| Parameter: | Wert: beliebiger (Rückgabe-)Wert |
| Beispiel: | 0 C While C=0 Getkey Ans=79 1 C Ans=69 2 C Ans=59 3 C 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. |
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.
| 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 Ans 3 "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. |
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 A 12 Goto 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. |
| SelfGTR Version 5.23 vom 04.10.2007 | © 2002 - 2007 Ronny Scholz |
|