Schleifen

Einführung

Was sind Schleifen? Eine Schleife kann man sich wie einen Kreislauf vorstellen, in dem der Inhalt so lange wieder von neuem Abläuft, bis eine Bedingung nicht erfüllt ist.
Schleifen werden also dazu genutzt einen bestimmten Teil des Programms mehrmals ablaufen lassen zu können. Es gibt drei verschiedene Typen von Schleifen.

1. Die Zählschleife: Es wird vorher festgelegt, wieviel mal die Schleife ablaufen muss (bis die Bedingung falsch wird).

2. Die kopfgesteurte Schleife: Im Kopf der Schleife wird festgelegt, unter welcher Bedingung die Schleife abläuft. Ist die Bedingung falsch, läuft die Schleife nicht ab.

3. Die fußgesteuerte Schleife: Die Schleife läuft mindestens einmal bis zum Ende durch und danach wird die Bedingung abgefragt. Ist die Bedingung wahr, läuft die Schleife wieder vom Anfang an ab. Ist die Bedingung falsch, wurde die Schleife mindestens einmal durchlaufen und danach wird mit den Anweisungen, die nach der Schleife stehen fortgesetzt.

Das war jetzt ein harter Schlag Theorie, versucht diesen bitte erst zu verstehen bevor ihr weiter macht.

zurück

Do-Schleife

Die Do-Schleife ist eine fußgesteuerte Schleife.
Syntax:

    Do
    [Anweisungen]
    [Anweisungen]
    LpWhile [Bedingung]

Erklärung zum Syntax: Jede Do-Schleife beginnt mit dem Befehl Do. Danach können soviele Anweisungen folgen, wie ihr braucht. Mit dem Befehl LpWhile schließt ihr die Schleife, achtet aber darauf, dass die Bedingung direkt hinter dem LpWhile kommt, ohne Neuzeilenbefehl.
Was für Anweisungen in der Schleife stehen ist egal. Die Bedingung wird mit Verhältnisoperatoren und / oder logischen Ausdrücken formuliert. Das Beispiel dürfte restliche Fragen klären.

Beispiel: Es ist ein Counter von 99 bis 0 zu erstellen!

    Syntax:
      99A
      Do
      Locate 10,3,A
      (A-1)A
      Lpwhile A>-1
      Stop

Erklärung: Zuerst wird die Variable auf 99 gesetzt, danach die Schleife geöffnet. Der Befehl Locate sorgt dafür, dass der Wert unserer Variable auch immer geschrieben wird, denn würden wir unsere Variable einfach ohne das Locate hincoden, würde die Zahl nicht erscheinen. Wenn der Wert angezeigt wurde, wird er um 1 gesenkt. In der Bedingung wird geprüft, ob der Wert größer als -1 ist, denn somit wird nur bis 0 runter gezählt. Stop beendet das Prog.

zurück

While-Schleife

Die While-Schleife ist eine kopfgesteuerte Schleife.
Syntax:

    While [Bedingung]
    [Anweisungen]
    [Anweisungen]
    WhileEnd

Erklärung zum Syntax: Jede While-Schleife beginnt mit dem Befehl While und der Bedingung. Achtet aber darauf, dass die Bedingung direkt hinter dem While steht, ohne Neuzeilenbefehl. Danach können soviele Anweisungen folgen, wie ihr braucht. Mit dem Befehl WhileEnd schließt ihr die Schleife.
Was für Anweisungen in der Schleife stehen ist egal. Die Bedingung wird mit Verhältnisoperatoren und / oder logischen Ausdrücken formuliert. Das Beispiel dürfte restliche Fragen klären.

Beispiel: Es ist ein Counter von 99 bis 0 zu erstellen!

    Syntax:
      99A
      While A>-1
      Locate 10,3,A
      (A-1)A
      WhileEnd
      Stop

Erklärung: Zuerst wird die Variable auf 99 gesetzt, danach die Schleife geöffnet. In der Bedingung wird geprüft, ob der Wert größer als -1 ist, denn somit wird nur bis 0 runter gezählt. Der Befehl Locate sorgt dafür, dass der Wert unserer Variable auch immer geschrieben wird, denn würden wir unsere Variable einfach ohne das Locate hincoden, würde die Zahl nicht erscheinen. Wenn der Wert angezeigt wurde, wird er um 1 gesenkt. Nach Durchlauf der Schleife springt das Prog wieder Zum Anfang der Schleife und prüft die Bedingung. Stop beendet das Prog.


Achtung: Alle, die jetzt durch die Beispiele verwirrt sind: Der Unterschied der kopf- und fußgesteuerten Schleifen besteht darin, dass die fußgesteuerte Schleife mindesten 1mal durchlaufen wird, da die Bedingung am Ende der Schleife steht. Die kopfgesteuerte Schleife wird jedoch nur durchlaufen, wenn die Bedingung wahr ist, d.h. die Schleife muss nicht durchlaufen werden.

zurück

For to Next-Schleifen

Die For to Next-Schleife ist eine Zählschleife. Ihr legt vorher fest wievielmal die Schleife durchlaufen wird. Um die Durchläufe zu zählen, wird eine Steuervariable benötigt. Diese Variable könnt ihr auch in euren Schleifeninternen Anweisungen benutzen.
Syntax:

    For [Startwert][Seuervariable] To [Endwert] Step [Schrittweite]
    [Anweisungen]
    [Anweisungen]
    Next

Erklärung: Mit For beginnt die Schleife. Direkt danch wird die Steuervariable mit dem Startwert definiert. Der Startwert ist der Wert, vondem an die Schleife zählen soll. Nach dem Befehl To kommt der Endwert, bei dem die Schleife mit zählen aufhören soll. Der Befehl Step gibt die Schrittweite an, d.h. um welchen Wert der Startwert addiert werden soll (bei rückwärts zählenden Schleifen muss die Schrittweite negativ sein). Lasst ihr den Befehl Step weg, so ist die Schrittweite automatisch 1. Nach der ersten Zeile kommen eure Anweisungen, wovon ihr wieder soviele wie ihr brauch reinschreiben könnt. Beendet wird die Schleife mit dem Befehl Next.

Beispiel: Die Zahl 33 soll 5 mal quadriert werden und die Ergebnisse sind untereinander anzuzeigen.

    Syntax:Syntax

Erklärung: Zuerst wird die Variable B definiert und danach die Schleife geöffnet. Da die Schleife fünf mal durchlaufen werden soll wird als Endwert 5 gewählt. Da die Schrittweite 1 ist, muss Step nicht angegeben werden. Nun wird B quadriert und das Ergebniss als B gespeichert. In der nächsten Zeile wird die Steuervariable gleich genutzt, um die Ergebnisse jedes mal auf eine neue Zeile zu schreiben. Mit Next wird die Schleife geschlossen.

zurück

Schleifen unterbrechen

Die Ausführung von Schleifen kann auch ohne die Bedingung unterbrochen werden. Ist in der Schleife zum Beispiel eine Bedingungsabfrage, bei der die Schleife sofort abbrechen muss, ohne weitere in der Schleife stehende Anweisungen auszuführen, wird ein "Ausgang" in die Schleife programmiert.
Dies ist nichts weiteres als ein Goto Befehl der auf eine Sprungmarke außerhalb der Schleife verweist. Und schon ist man draußen.
Es gibt auch noch den Befehl Break, mit dem eine Schleife unterbrochen werden kann, dies ist jedoch kein schöner Befehl, denn mit Goto ~ Lbl ist ein Prog viel sauberer programmiert. Deswegen verwenden wir Goto ~ Lbl und nicht den Break-Befehl.

zurück

© 2004-2008 by Jörg Binnewald, V 2.0
esc-now.de