Kids' Programming Language
Vorherige Seite Nächste Seite Inhalt

Kontrolle über das Programm

Wenn, dann ...

Es kommt häufig vor, dass ein Programm auf den Wert eines Objekts (Eingaben vom Benutzer wie z.B. eine Zahl oder einen Text) in einer bestimmten Weise reagieren soll. Tritt eine bestimmte Situation ein, sollen spezielle Anweisungen ausgeführt werden. Man nennt dies bedingte Ausführung.

Zunächst ein Beispiel: Ein Programm soll das Alter einer Person einlesen und entscheiden, ob diese Person volljährig ist. Zunächst muss über einen Dialog ('ZahlDialog') das Alter eingelesen werden, was folgendermaßen geschehen kann:
 
Programm
Dialog=ZahlDialog(Text="Gib dein Alter ein!")
zeige:Dialog
Alter=gibZahl:Dialog
schreibe:"Du bist "+Alter+" Jahre alt."
 
Um abzufragen, ob der Benutzer 18 Jahre oder älter ist, lautet die Bedingung 'Alter>=18'. Um eine 'wenn...dann' Anweisung einzufügen, klickt man auf das  am linken Fensterrand. Anschließend lässt sich die Bedingung eingeben. In dem grünen Kasten unter der Bedingung  schreibt man, was gemacht werden soll, falls die Bedingung zutrifft. In diesem Fall soll "Du bist volljährig." geschrieben werden:
 
Programm
Dialog=ZahlDialog(Text="Gib dein Alter ein!")
zeige:Dialog
Alter=gibZahl:Dialog

wenn Alter>=18 dann
schreibe:"Du bist volljährig."

 
Soll außerdem auch etwas ausgegeben werden, wenn die Bedingung nicht zutrifft, muss man mit der rechten Maustaste auf 'wenn' klicken. Anschließend wählt man in dem erscheinenden Menü 'sonst' aus und es erscheint unter 'sonst' ein zusätzlicher Kasten, der nur dann ausgeführt wird, falls die Bedingung nicht zutrifft:
 
Programm
Dialog=ZahlDialog(Text="Gib dein Alter ein!")
zeige:Dialog
Alter=gibZahl:Dialog

wenn Alter>=18 dann
schreibe:"Du bist volljährig."
sonst
schreibe:"Du bist in "+(18-Alter)+" Jahr(en) volljährig."

 
Sollen noch weitere Bedingungen abgefragt werden, falls die 'wenn...dann' Bedingung nicht zutrifft, lässt sich durch einen Rechtsklick mit der Maus eine 'oder wenn...dann' Bedingung einfügen:
 
Programm
Dialog=ZahlDialog(Text="Gib dein Alter ein!")
zeige:Dialog
Alter=gibZahl:Dialog

wenn Alter>18 dann
schreibe:"Du bist volljährig."
oder wenn Alter=18 dann
schreibe:"Du bist gerade volljährig geworden."
sonst
schreibe:"Du bist in "+(18-Alter)+" Jahr(en) volljährig."

 
Genauso wie Zahlen lassen sich auch Kommazahlen miteinander vergleichen.

Texte vergleichen

Außer Zahlen kann man unter anderem auch Texte vergleichen. Das folgende Programm vergleicht den Text 'Name="jan"' mit "Jan". Verwendet man ein einfaches Gleichheitszeichen, wird der Text verglichen, ohne dass auf Groß- und Kleinschreibung geachtet wird:
 
Programm
Name="jan"

wenn Name="Jan" dann
schreibe:"Der Name ist Jan."

 
Dieses Programm schreibt deswegen "Der Name ist Jan.". Verwendet man ein doppeltes Gleichheitszeichen '==', so werden die folgenden Anweisungen nur ausgeführt, falls die Texte (unter Beachtung der Groß- und Kleinschreibung) identisch sind:
 
Programm
Name="jan"

wenn Name=="Jan" dann
schreibe:"Der Name Jan wurde groß geschrieben."

wenn Name=="jan" dann
schreibe:"Der Name Jan wurde klein geschrieben."

Wahr oder falsch

Manchmal ist es praktisch direkt zu bestimmen, ob eine 'wenn...dann' Anweisung ausgeführt werden soll. Dazu benötigt man ein Objekt, das entweder den Wert wahr oder falsch besitzt. Solche Objekte gehören zur Klasse 'Bool' (nach einem bekannten Mathematiker). Solche Objekte lassen sich erzeugen durch 'Objektname=wahr' oder 'Objektname=falsch' und können durch die 'wenn...dann' Anweisung überprüft werden:
 
Programm
farbig=wahr

wenn farbig dann
zeige:Kreis(Farbe="rot")
sonst
zeige:Kreis(Farbe="schwarz")

 
Für 'farbig=wahr' wird also ein roter Kreis gezeigt, während für 'farbig=falsch'
 
Programm
farbig=falsch

wenn farbig dann
zeige:Kreis(Farbe="rot")
sonst
zeige:Kreis(Farbe="schwarz")

 
ein schwarzer Kreis dargestellt wird. Alternativ hätte man auch 'wenn farbig=wahr dann' schreiben können.

Nicht, und, oder

Es lassen sich auch mehrere Bedingungen mit Hilfe von 'und' und 'oder' verknüpfen. Die Anweisungen werden bei 'und' nur ausgeführt falls beide Bedingungen (links und rechts vom 'und') erfüllt sind. Bei 'oder' muss hingegen nur eine Bedingung zutreffen. Außerdem lässt sich vor jede Bedingung noch ein 'nicht' stellen, das das Ergebnis der Bedingung umdreht bzw. verneint (aus wahr wird falsch, aus falsch wird wahr). Sind mehrere Verknüpfungen vorhanden, werden zunächst alle 'nicht'-, dann alle 'und'- und danach alle 'oder'-Verknüpfungen ausgeführt. Durch das Setzen von Klammern lässt sich die Reihenfolge der Auswertung bestimmen wie im folgenden etwas komplexeren Beispiel:
 
Programm
z=13
Primzahl=wahr

wenn z>=10 und (nicht Primzahl oder z=13) dann
schreibe:"Die Zahl ist größer/gleich 10. Sie ist keine Primzahl oder aber gerade 13."

Jetzt kostenlos herunterladen.
Diese Seite ausdrucken.
Diese Seite speichern.