Schleifen

Der/Die eine oder andere von Euch wird bereiz bei der letzten Übung es geschafft haben, zwei verschiedene bedingte Schleifen zu programmieren, um das abwechselnde ein- und aus- blenden zu bewirken. Für Schleifen bieten Programmiersprachen jedoch komfortablere Möglichkeiten, die zudem auch noch eine bessere Lesbarkeit des Code gewährleisten.


Die „while“- Schleife
Eine bedingte Schleife, die in ihrer Syntax einer bedingten Anweisung entspricht. Der Code in den geschwungenen Klammern wird jedoch so lange wiederholt, bis die Bedingung nicht mehr erfüllt wird.

Obiges Beispiel würde das Programm so lange anhalten, bis Serial bereit ist. Eine typische Verwendung der „while“– Anweisung, wenn man auf etwas warten will.

  • „Serial“ gibt „true“ zurück, wenn die serielle Schnittstelle bereit ist.
    Andernfalls ist das Ergebnis „false“.

Beachte vor allem bei einem ESP8266 eine „delay“- Anweisung in eine solche Schleife ein zu fügen! Zum einen spart man so unnötige Rechenleistung, die den MC unnötig heiß werden lässt. Zum anderen benötigt die WiFi- Schnittstelle immer wieder Rechenleistung. Denn sollte eine solche Schleife länger als 20 ms benötigen, würde der ESP8266 abstürzen.


Die „for“- Schleife
Wir werden bei der Programmierarbeit auch immer wieder Teile des Codes mehrmals durchlaufen lassen müssen, bei der die Anzahl der Durchläufe von vorne herein fest steht. In diesen Fällen bewährt sich der Einsatz einer „for“– Schleife.

Syntax
Der Anweisung „for“ folgen in runden Klammern drei Anweisungen, welche die Eigenschaften der Schleife bestimmen. Beachte, dass Anweisungen durch „;“ getrennt werden!

  • „int i = 0;“  Eine lokale integer Variable, welche die Schleife initialisiert.
    Der Buchstabe „i“ wird als Quasistandard für Schleifen benutzt.
  • „i <= 1024;“ Bedingung für Durchlauf der Schleife.
  • „i++“ Zählanweisung für die Schleife.

Häufig wird die Variable der Schleife innerhalb dieser verwendet um Werte zu zu weisen, oder wie im Beispiel oben auf einen Ausgang zu schreiben.

Verschachtelung von Schleifen
Es ist üblich Schleifen zu verschachteln. Darunter versteht man, dass eine Schleife innerhalb einer übergeordneten Schleife geöffnet wird. Diese Unter- Schleifen schließen vor der übergeordneten Schleife. Um die Übersicht zu wahren, werden diese um zwei Zeichen eingerückt. Nutze dazu den Menüpunkt „Automatische Formatierung“!


Zuweisungsoperatoren „++“ inkrement und „- -“ dekrement

Diese beiden Operatoren weisen der vorangestellten Variablen an, sich selbst um „1“ zu erhöhen „++“ oder sich selbst „1“ ab zu ziehen „- -„. Je nach Variablentyp kann dies unterschiedliche Ergebnisse erreichen.

Nerdcontent:
Bei der Erweiterung der Sprache „C“ von einer problemorientierten, zu einer objektorientierten Sprache ist dies in der Namensgebung eingeflossen. „C“ wurde um eine Stufe weiter entwickelt und demnach zu „C++“.


Fazit
Es sollte für Dich nun ein leichtes sein, die LED auf dem Board in jedem beliebigen Muster blinken zu lassen. Wenn jetzt jedoch etwas Frust aufkommt, da Du ja nicht auf das laufende Programm Einfluss nehmen kannst, ist das sehr gut. Wir werden uns nun alsbald der Technik des „IoT“ zuwenden. Doch zuvor solltest Du dir unbedingt einige Grundlagen der Programmierung aneignen! Sie mögen Dir jetzt am Anfang sehr verwirrend und teilweise nutzlos erscheinen, doch zum Verständnis beitragen, warum einige Dinge scheinbar recht umständlich zu handhaben sind.

Ich weis aus eigener Erfahrung, dass es einige Zeit braucht und es durchaus möglich währe, auf dieses Wissen zu verzichten. Eine große Anzahl an Sketches liegt im Internet bereit, welche mit kleinen Anpassungen an die eigene Aufgabe angepasst werden können.
Doch viele hoffnungsvolle Projekte kamen genau dadurch zum erliegen, weil oftmals diesen Codeschnipselsammlern in ihrer „Hobby- User- Bubble“ das Grundwissen fehlte um über ein eigentlich kleines Problem zu kommen, dass einfach zu lösen währe.
Ohne Grundlagen, weis man jedoch nicht mal, wonach man suchen müsste.

Solltest Du zu dem Beitrag noch Fragen haben, melde Dich in unserer Google Community!