Block
Der solange
Block zählt zu den Schleifen. Anders jedoch als die wiederhole fortlaufend
Schleife besitzt wie der Name schon vermuten lässt die solange
Schleife eine Abbruchbedingung.
Diese wird dem Block als teste
Parameter übergeben.
Vor jedem Durchlauf der Schleife wird die teste
Bedingung geprüft. Wenn diese nicht (mehr) erfüllt ist dann wird der Befehlssatz übersprungen und der Code uuuunter dem
solange
Block wird abgearbeitet.
teste
In den teste
Parameter wird eine Bedingung eingesetzt. Diese kann nur zwei mögliche Zustände haben. Entweder die Bedingung ist wahr (TRUE
) oder falsch (FALSE
).
Es kann ein digitaler Eingang abgefragt werden, an dem ein Signal anliegt, dann ist dieser wahr und der Code wird ausgeführt. Wenn kein Signal anliegt und die Bedingung damit nicht erfüllt ist
wird der Code unter Befehle
übersprungen.
Es können auch zwei Variablen miteinander oder eine Variable mit einem festen Wert verglichen werden um einen digitalen Zustand zu erzeugen.
Befehle
In den Befehle
Abschnitt kann eine Folge von weiteren Blöcken zu Anweisung von Befehlen eingefügt werden.
Dies kann zum Beispiel ein digitalWrite
Block sein, der einen Pin HIGH
oder LOW
schält oder eine Variable, die gesetzt werden soll
oder sogar weitere solange
Blöcke.
Beachte: Der Code, welcher unter Befehle
eingefügt wird, solange ausgeführt wie die Bedingung unter teste
wahr ist.
Der Befehlssatz kann sich also beliebig oft wiederholen. Sogar unendlich oft, wenn sich die teste
Bedingung nicht auf FALSE
ändert.
Dies wäre zum Beispiel der Fall, wenn man als teste
bedingung einfach ein TRUE
einsetzen würde.
Beispiel
In diesem Beispiel wird der setze analoge Variable
Block verwendet.
Nun wollen wir diese Variable bis auf einen Wert von 100 immer jeweils um 1 hochzählen lassen, wenn sie kleiner als 100 ist.
Die Abbruchbedingung ist also, dass die Variable größer oder gleich 100 ist
Im Befehlssatz wird die Variable dann pro Durchlauf um 1 hochgezählt.
Wenn sie die 99 erreicht hat läuft die Schleife dann das letzte mal durch, hier ist die Bedingung das letzte mal erfüllt ist, da gilt 100<100 = falsch.
In AurduBlock würde das dann so aussehen:
Im Code würde das Beispiel dann folgendermaßen aussehen:
while(var < 100){
var = (var + 1);
}
Code
Im Code für den Arduino wird der Baustein mit while(teste){Befehle}
umgesetzt.
Die Bedingung wird hier in die runden Klammern () und die Befehle in die geschweiften Klammern {} geschrieben.