Steuerung / Schleifen

solange

solange-Block

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:

beispiel-zum-solange-block

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.