| | | | Gliederung: | Folgende Themen werden behandelt: |
1. einzelne Anweisungen hinzunehmen ( )
Mit dem Sprungoperator kann man bedingte Anweisungen formulieren, die nur eine Anweisung haben. Dieses Verfahren ist wesentlich kürzer als die im folgenden Abschnitt vorgestellte allgemeine Methode.
Der Sprungoperator lässt sich auch verschachteln. Dann sind die Einzelbedingungen UND-verknüpft. Eine ODER-Verknüpfung lässt sich über Verschachtelungen nicht realisieren.
| Syntax: | Bedingung 1 Bedingung 2 ... Bedingung n Anweisung |
| Beispiel: | List 3[N]=7G-9 G |
| zeigt den Wert von G an, falls die Listenzelle List 3[N] dem Wert 7G-9 entspricht |
| löscht alle Variablen als Buchstaben, falls B zwischen 8 und 20 liegt |
| Beispiel: | B>8 And B<20 0 A~Z |
| hat die gleiche Wirkung wie die vorige verschachtelte Variante |
| Beispiel: | B=50 Or B<20 0 A~Z |
| löscht alle Variablen als Buchstaben, falls B kleiner als 20 oder gleich 50 ist |
2. einzelne Anweisungen auslassen ( Isz ~ Dsz)
Isz inkrementiert eine Variable. Falls der Wert nach dem Inkrementieren 0 beträgt, wird die darauffolgende Anweisung übersprungen. Dsz arbeitet analog, nur dass hier der Wert der Variablen dekrementiert wird.
Für weitere Erläuterungen siehe Abschnitt mit Variablen rechnen.
| Syntax: | Isz <Variable> Dsz <Variable> |
| Parameter: | Variable: Variable als Buchstabe |
| Beispiel: | 0->A Isz A "1":"2":"3" |
| Beispiel: | -1->A Isz A "1":"2":"3" |
| Ausgabe: 23 Der Wert von A beträgt nach dem Inkrementieren nun 0, daher wird die darauffolgende Anweisung ignoriert. |
3. allgemeine Variante ( If ~ Then ~ Else ~ IfEnd )
Mit den If-Statement kann man mehrere Anweisungen bedingt ausführen (Then-Anweisungen). Man hat außerdem die Möglichkeit Anweisungen zu definieren, die ausgeführt werden sollen wenn die If- Bedingung nicht zutrifft (Else- Anweisungen). IfEnd beendet die Verzweigung.
| Syntax: | If Bedingung Operationsbefehl Then Anweisungen Operationsbefehl {Else Anweisungen Operationsbefehl} IfEnd |
| Beispiel: | If (A=B Or B=C) And Ans<3 Then ClrText:3 A IfEnd "FERTIG" |
| Dieses Beispiel mit einer etwas komplexeren Bedingung hat 2 Anweisungen: es leert das Textdisplay und setzt Variable A. FERTIG wird unabhängig von der Bedingung immer ausgegeben, weil es hinter IfEnd steht. |
| Beispiel: | ? X:? Y PxlTest Y,X If Ans Then "VORHANDEN" Else "NICHT VORHANDEN" IfEnd |
| Das Programm liest 2 Koordinaten ein und prüft, ob sich an dieser Stelle im Grafikspeicher (Draw Mem) ein Pixel befindet. Das Resultat ist die Bedingung dafür, ob VORHANDEN (Ans=1) oder NICHT VORHANDEN (Ans=0) ausgegeben wird |
| SelfGTR Version 5.23 vom 04.10.2007 | © 2002 - 2007 Ronny Scholz |
|