For- Next- Schleifen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

Hinweis kann nach Kenntnisnahme deaktiviert werden!

  • Einstiegserklärung zu For- Next
    Aufbau der For- Next - Schleife
    Die Bezeichnung dieser Schleife (For- Next) beinhaltet gleich zwei (zusammengehörende) BASCOM- Befehle, welche im Programm jedoch nicht in einer Zeile verwendet werden, sondern zu Anfang und am Ende der Schleife stehen. Zunächst kommt sozusagen ein Ausgangsbefehl, in welchem festgelegt wird, ab welchem Startwert unsere Zählvariable (im Beispiel I) gezählt werden soll und als zweites der Wert, bis zu welchem gezählt werden soll, bevor das Programm die Schleife verlassen soll:

    For I = 1 to 10

    Sobald das Programm zum Befehl For kommt setzt es die Zählvariable (I) auf den Startwert und durchläuft so oft die Schleife, bis der Endwert wahr ist. In unserem Fall also:

    1,2,3,4,5,6,7,8,9,10

    Zwischen dem For-Befehl und dem Next- Befehl kann beliebiger Programmcode stehen. Beispielsweise eine Warteanweisung von 1 Sekunde (Wait 1)


    For I=1 to 10
    Wait 1
    Toggle Led_1 'Eine Kontroll-LED blinkt mit 1 Sekunde Pause jeweils 1 Sekunde lang
    Next I

    Die Zählvariable kann im Programm auch als ganz normale Variable verwendet werden:


    For I=1 to 10
    Wait I

    Toggle Led_1 'Eine Kontroll-LED blinkt mit immer längeren Impuls- Pausenzeiten
    Next I

    Was passiert im Programm?
    • Im ersten Durchlauf ist I=1, es wird also 1 Sekunde gewartet
    • beim zweiten Durchlauf ist I=2, die LED bleibt 2 Sekunden dunkel
    • im nächsten Durchlauf wird sie 3 Sekunden eingeschaltet
    • bis das Programm nach 10 Sekunden Schaltzeit die Schleife verläßt.



    Die For- Next- Schleife kann noch mehr

    Wir wollen noch einen erweiterten Blick auf die For- Next- Schleife werfen:

    Im Programmbeispiel haben wir bei 1 mit dem Zählen begonnen. Das ist aber nicht notwendig, es geht auch von jedem anderen Wert, der in die Zählvariable "passt" (z.B. eine Bytevariable, also 0- 255):

    For I=10 to 20
    For I = 150 to 180

    Auch das Zählen muss nicht in Einerschritten erfolgen. Hier gibt es einen Zusatzbefehl:

    For I = 2 to 10 Step 2 'Wir zählen in Zweierschritten: 2,4,6,8,10

    For I = 5 to 50 Step 5 'Wir zählen von 5 bis 50: 5,10,15,20,25,...45,50

    Und wir setzen noch einen drauf: es geht auch rückwärts

    For I = 100 to 0 Step -1 'Count down von 100 nach 0

    Soll eine Schleife nicht bis zum Ende ausgeführt werden, weil sich beispielsweise die Ausgangsbedingungen geändert haben, so ist das jederzeit mit Exit For (natürlich innerhalb der Schleife als If- Bedingung stehend) möglich.
    .
    Im Rahmen des Mikrokontrollerkurses (MCK) für Anfänger findet Ihr ein konkretes Anwendungsbeispiel für den Befehl, der das dortige Ausgangsprogramm stark verkürzt:

    MCK 1.1.3 Realistische Verkehrsampelsteuerung

    13.812 mal gelesen