selektion

5. IF-ELSE-STRUKTUR (SELEKTION)

 

 

DU LERNST HIER...

 

wie du mit Hilfe der if-else-Struktur bewirken kannst, dass bestimmte Programmblöcke nur unter gewissen Bedingungen ausgeführt werden.

 

 

MUSTERBEISPIELE

 

Die Selektion wird mit dem Schlüsselwort if eingeleitet, gefolgt von einer Bedingung. Die Anweisungen nach if werden nur dann ausgeführt, wenn die Bedingung wahr ist, sonst werden die Anweisungen nach else ausgeführt. In der if-Bedingung werden üblicherweise die Vergleichsoperatoren >, >=, < , <= , == , != verwendet. Die Anweisungen im if- und else-Block müssen eingerückt sein.

In folgenden Beispiel bewegt sich die Schlange auf einer quadratischen Bahn. Die Schlange hat einen gelben Schwanz, wenn sich ihr Kopf in der linken Hälfte der Oxocard befindet, sonst ist der Schwanz blau.

Du fragst nach jedem Vorwärtsschritt die aktuelle x-Koordinate mit dem Befehl getX() ab. Ist die Koordinate kleiner als 4, wird die Schwanzfarbe mit dem Befehl setTailColor() auf gelb gesetzt, sonst wird sie auf blau gesetzt.

 

Programm:

from oxosnake import *

makeSnake(speed = 90, heading = 45)
repeat:
    repeat 3:
        forward()
        if getX() < 4:
            setTailColor(YELLOW)
        else:
            setTailColor(BLUE)        
    right(90)
► In Zwischenablage kopieren


Der else-Block kann auch wegfallen. In diesem Fall führt das Programm den if-Block aus, falls die Bedingung erfüllt ist und fährt dann mit der Zeile unter dem if-Block weiter. Ist die Bedingung nicht erfüllt, wird der if-Block einfach übersprungen.

In deinem Beispiel ändert die Schlange die Bewegungsrichtung wenn sie am rechten oder linken Rand ankommt. Beachte, dass im Vergleichsoperator das Gleichheitszeichen verdoppelt wird und dass man Bedingungen mit or verbinden kann. Eine solche Bedingung ist wahr ist, wenn die eine oder die andere Teilbedingung (oder auch beide) wahr sind.

 




Programm:

from oxosnake import *

makeSnake(speed = 90)
right(90)
repeat:
    if getX() == 7 or getX() == 0:
       left(180)
    forward()
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Mit der Programmstruktur Selektion kannst du bewirkt, dass bestimmte Anweisungen nur unter gewissen Bedingungen ausgeführt werden. Sie funktioniert gleich wie in der Umgangssprache: "Falls eine Bedingung erfüllt ist, dann mache dies, sonst mache jenes.

Man kann Bedingungen A und B mit dem Schlüsselwort or verbinden. Es gibt dann für die kombinierte Bedingung:

Man kann Bedingungen A und B mit or oder and verbinden. Dann gibt es folgende Möglichkeiten:

 A  B  A or B  A and B
 False  False  False  False
 False  True  True  False
 True  False  True  False
 True  True  True  True

 

 

ZUM SELBST LÖSEN

 

 

1.

Eine Schlange startet in der linken unteren Ecke und bewegt sich von links nach rechts. Wenn sie am rechten Rand angekommen ist, wird sie wieder an den linken Rand zurückversetzt und bewegt sich wiederholt von links nach rechts.

 


2.

Die Schlange startet an der Position (1, 6) und bewegt sich in einer endlosen Schleife auf einem Quadrat mit der Seitenlänge 5. Nach jeder zurückgelegten Seite fügst du mit dem Befehl growTail() ein Schwanzelement hinzu, bis die Schlange so lang ist, dass der Kopf das letzte Schanzelement berührt. Das kannst du abfragen mit
if intersect():
Dann soll die Schwanzfarbe auf BLUE wechseln und das Programm abbrechen.