mit Hilfe der if-else-Struktur bestimmte Programmblöcke nur unter gewissen Bedingungen (selektiv) ausgeführen.
MUSTERBEISPIELE
Die Selektion wird mit dem Schlüsselwort if eingeleitet, gefolgt von einer Bedingung. Die Anweisungen im if -Block werden nur dann ausgeführt, wenn die Bedingung wahr ist, sonst werden die Anweisungen nach else, also im else-Block ausgeführt. In derif-Bedingung werden üblicherweise die Vergleichsoperatoren >, >= , < , <= , == , != verwendet. Die Anweisungen im if- bzw. else-Block müssen eingerückt sein. Der else-Block kann auch wegfallen.
Beispiel 1: Die Linienfarbe ändern
Falls der Anfangspunkt einer Linie eine negative x-Koordinate hat, wird die Linie mit roter, sonst mit grüner Farbe gezeichnet.
Programm:
# Gp7a.pyfrom gpanel import *
makeGPanel(-30, 30, 0, 60)
x = -30
while x <= 30:
if x <= 0:
setColor("magenta")
else:
setColor("cyan")
line(0, 50, x, 0)
x = x + 1
delay(50)
Beispiel 2: Zufallsregen
In einem Quadrat werden zufällig 50 000 Punkte gewählt. Wenn ein Punkt innerhalb der einbeschriebenen Kreises liegt, wird er rot, sonst grün gezeichnet. Da der Radius des Kreises 100 ist, gilt für die innere Punkte die Bedingung x2 + y2 < 1002. Das Zeichnen eines Kreises in der entsprechenden Farbe an einer zufällig gewählten Position definierst du in der Funktion randomDot().
Programm:
# Gp7b.pyfrom gpanel import *
from random import randint
def randomDot():
x = randint(-100, 100)
y = randint(-100, 100)
if x * x + y * y < 10000:
setColor("red")
else:
setColor("green")
pos(x, y)
fillCircle(0.5)
makeGPanel(-100, 100, -100, 100)
i = 0
while i < 50000:
randomDot()
i = i + 1
Beispiel 3: Mehrfache Auswahl
Mit der Struktur if-elif-else kannst du mehrere Bedingungen nacheinander überprüfen. Wenn die Bedingung nach if nicht zutrifft, werden die Bedingungen nach elif der Reihe nach überprüft. Falls keine der Bedingungen erfüllt ist, werden die Anweisungen nach else ausgeführt. Ein Doppelpunkt nach jeder Bedingung und die korrekte Einrückung sind wichtig.
Im Beispiel werden die Farben der kleinen Kreise je nach der Grösse ihrer x-Koordinaten gewählt.
Programm:
# Gp7c.pyfrom gpanel import *
makeGPanel(0, 20, 0, 20)
x = 1
while x < 20:
y = 1
while y < 20:
pos(x, y)
if x < 5:
setColor("red")
elif x < 10:
setColor("yellow")
elif x < 15:
setColor("green")
else:
setColor("magenta")
fillCircle(0.5)
y = y + 1
x = x + 1
Beispiel 4: Bedingungen mit and verknüpfen
Die so kombinierte Bedingung ist nur dann wahr, wenn beide Teilbedingungen wahr sind. Hier werden nur dann rote Punkte gezeichnet, wenn die x-Koordinate der Turtle grösser als 5 und kleiner als 15 ist.
Programm:
# Gp7d.pyfrom gpanel import *
makeGPanel(0, 20, 0, 20)
x = 1
while x < 20:
y = 1
while y < 20:
pos(x, y)
if x > 5 and x < 15:
setColor("red")
else:
setColor("yellow")
fillCircle(0.5)
y = y + 1
x = x + 1
Wenn die Bedingung nach if stimmt, wird der nachfolgenden Programmblock ausgeführt, sonst der Programmblock nach else. Fehlt der else-Block, so wird das Programm mit der nächsten Zeile fortgesetzt. Für eine mehrfach Auswahl verwendest du die Struktur in-elif-else.
Die Bedingungen können mit and oder mit or verknüpft werden, wobei bei and beide Bedingungen und bei or mindestens eine der beiden Bedingungen erfüllt werden muss..
ZUM SELBST LÖSEN
1)
Erstelle mit Hilfe der if-else-Struktur die nebenstehende Grafik.
2)
Zeichne 1000 Linien mit Anfangspunkt in der Mitte des Fensters und Endpunkten in Punkten mit zufälligen Koordinaten im Bereich -100 bis 100. Die Linien mit einer positiven x-Koordinate sind rot, die übrigen grün gefärbt.
3)
Zeichne mit Hilfe der if-else-Struktur die nebenstehende Figur.