Verzweigungen

Oft soll etwas nur unter bestimmten Voraussetzungen ausgeführt werden, oder je nachdem etwas oder etwas anderes. Dafür kennen Programmiersprachen die If- und If-Else-Struktur – in Scratch durch eine einfache, resp. doppelte Klammer dargestellt. Stimmt die angegebene Bedingung, dann wird der If-Block ausgeführt. Sonst wird nichts resp. der Else-Block ausgeführt.

If-Block
If-Else-Block

Wahrheitswerte

Um bei einer Verzweigung entscheiden zu können, welcher Teil ausgeführt werden soll, braucht man ein «ja» oder ein «nein». Scratch-Blöcke welche ein Ergebnis der Art «wahr» oder «falsch» resp. «ja» oder «nein» zurückliefern haben das folgende Aussehen:

Wahrheits-Block

Beispiele:

  • Wird der Bildrand berührt?
  • Wird die Farbe «grün» berührt?
  • Wurde die Taste «q» gedrückt?
  • Wurde die Maustaste geklickt?

Verwenden von Wahrheitswerten mit einer Verzweigung:

scratch-Baustein nachgebaut
Bestehender Baustein von Scratch: Wenn das Objekt auf den Rand trifft, dreht es Selbst nachgebauter Programm-Block, der das selbe mit einer Verzweigung, einem Wahrheitsblock und einem Dreh-Befehl löst

Vergleichsoperatoren

Wahrheitswerte können auch durch Vergleich von Zahlen oder anderen Variablen entstehen. Als Vergleichsoperatoren können «kleiner», «gleich» und «grösser» eingesetzt werden. In die eckigen Kästchen der Vergleichsoperatoren kommen Zahlen oder Variablen.

Vergleichs-Blöcke

Beispiele:

  • 4 < 5 liefert wahr
  • 4 > 5 liefert falsch
  • 4 = 5 liefert falsch
  • a > 12 (je nachdem welcher Wert in a gespeichert ist)

Operatoren ändern Werte. Wir kennen vor allem die Mathematischen Operatoren, also z.B. +, -, * und /. Diese generieren aus zwei Zahlen ein Ergebnis.

Operatoren auf Wahrheitswerten

Mehrere Wahrheitswerte können mit sogenannten logischen Operatoren verknüpft werden. Zur Verfügung stehen das logische «Und» (and), das logische «Oder» (or) und das logische «Nicht» (not).

Boolsche-Blöcke

Die Werte «wahr» oder «falsch» (true resp. false) sind sogenannte boolsche Werte (boolean). Die meisten Programmiersprachen kennen «Boolean» als Datentyp (neben Zahlen und Text).

Die logischen Operatoren lassen sich in sogenannten Wahrheitswertetabellen darstellen, wobei 0 für «falsch» und 1 für «wahr» steht:

a b a and b
0 0 0
0 1 0
1 0 0
1 1 1
Alle möglichen AND-Verknüpfungen zweier Wahrheitswerte
a b a or b
0 0 0
0 1 1
1 0 1
1 1 1
Alle möglichen OR-Verknüpfungen zweier Wahrheitswerte
a not a
0 1
1 0
Alle möglichen NOR-Operationen eines Wahrheitswertes

Es lassen sich jetzt beliebig komplexe Bedingung erstellen, welche dann in einer Verzweigung eingesetzt werden können. Das folgende Bespiel führt den If-Block nur dann aus, wenn der Wert der Variablen x grösser als 10 ist und das zum Skript gehörende Objekt nicht die Farbe Schwarz berührt. Sonst wird der Else-Block ausgeführt.

Beispiel