Lernpfad:LibreLogo für Fortgeschrittene/Verzweigungen
Wenn-Dann-Sonst
Manchmal möchte man, dass der Turtle unterschiedliche Formen zeichnet, je nachdem, ob bestimmte Bedingungen eingetreten sind (wahr sind), oder nicht. In diesen Fällen helfen Verzweigungen oder auch Bedingte Anweisungen genannt.
Der Aufbau ist in allen Programmiersprachen ähnlich:
WENN Bedingung
DANN Anweisungen falls Bedingung wahr
SONST Anweisungen falls Bedingung nicht wahr
Bedingungen
Bedingungen sind Aussagen, die entweder wahr oder falsch sind. Zum Beispiel könnte eine solche Aussage "es regnet" sein. Wenn du aus dem Fenster schaust kannst du feststellen, ob diese Aussage jetzt gerade wahr oder falsch ist.
In einer Programmiersprache wie LibreLogo könnte so eine Aussage zum Beispiel lauten "Der Turtle guckt gerade nach oben." oder "Dies ist das zehnte Mal, dass die Wiederholung ausgeführt wird.". Jede dieser Bedingungen kann wahr oder falsch sein.
Wenn-Dann Anweisung
Abhängig davon, ob eine Bedingung wahr oder falsch ist, kann der Turtle nun andere Anweisungen ausführen. Dazu schreibst du die Bedingung einfach hinter die WENN
Anweisung und die Anweisungen einfach in eckige Klammern:
WENN Bedingung [ Dann-Anweisungen ]
Was Sonst
Soll es auch einen Sonst-Teil geben, dann werden die Anweisungen zwischen einem weiteren Paar eckiger Klammern ([]
ergänzt.
WENN Bedingung [ Dann-Anweisungen ][ Sonst-Anweisungen ]
Kombination mit Wiederholungen
Die Wenn-Dann-Anweisung lässt sich auch super mit Wiederholungen kombinieren. Zum Beispiel könnte der Turtle bei jeder zweiten Wiederholung eine andere Drehung machen und so eine Zick-Zack-Linie laufen:
WDH 10 [ VOR 0,5cm WENN ZÄHLER == 2 ODER ZÄHLER == 4 ODER ZÄHLER == 6 ODER ZÄHLER == 8 ODER ZÄHLER == 10 [ RE 30 ] [ LI 30 ] ]
ZÄHLER
zählt, die wievielte Wiederholung der Anweisungen gerade ausgeführt wird. Näheres dazu findest du im Schritt Wiederholungen benutzen.
In der Bedingung oben werden mehrere Fälle überprüft und mit dem Wort ODER
verknüpft. Bei der zweiten, vierten, sechsten, achten oder zehnten Wiederholung der Schleife wird die Anweisung RE 30
, sonst die Anweisung LI 30
ausgeführt. Man nennt ODER
eine logische Verknüpfung. Es gibt auch die Verknüpfung UND
.
Weiterführende Informationen
Die Modulo Operation
Die Bedingung im Programm oben kann auch kürzer geschrieben werden. Vielleicht ist dir aufgefallen, dass die Zahlen in der Bedingung alle gerade sind. Wenn man eine gerade Zahl durch zwei teilt, dann bleibt der Rest null. Diese Rechnung kann Logo auch machen und anstatt jede gerade Zahl aufzulisten, kann die Bedingung einfach den Rest prüfen. Dazu gibt es die Modulo-Operation, die in Logo mit dem Prozentzeichen (%
) geschrieben wird.
Die Rechnung 4 % 2
ermittelt dann denn Rest bei einer Division mit Rest. Das Ergebnis ist also 0
. Die Rechnung 5 % 2
ergibt 1
, und so weiter. Ist die erste Zahl gerade, dann ergibt Zahl % 2
also immer 0
.
Nun kann man das Programm oben auch so schreiben:
WDH 10 [ VOR 0,5cm WENN ZÄHLER % 2 == 0 [ RE 30 ] [ LI 30 ] ]