If / Else / Else If Conditionals

In dieser Lektion werdet ihr…

  • lernen, wie man eine If / Else / Else If Conditional (wenn / sonst / sonst wenn bedingte Anweisungen) schreibt.
  • eure Magic 8 Ball-App verbessern, indem ihr der oder dem Nutzer:in nicht erlaubt, die gleiche Frage zweimal hintereinander zu stellen.

Schlüsselbegriffe

  • If / Else / Else If – Wenn / sonst / sonst wenn bedingte Anweisungen sind Anweisungen, die mehr als eine Bedingung haben.  

 If / Else / Else If 

Bisher habt ihr gelernt, wie man bedingte Anweisungen schreibt. Bedingte Anweisungen überprüfen die Bedingungen, um dann zu entscheiden, ob sie wahr oder falsch sind. Die bedingten Anweisungen, die ihr in der letzten Coding-Lektion erstellt habt, hatten zwei mögliche Ergebnisse. In dieser Lektion lernt ihr, wie man bedingte Anweisungen schreibt, die mehr als eine Bedingung prüfen und mehr als zwei mögliche Ergebnisse haben.

If / Else / Else If bedingte Anweisungen sind bedingte Anweisungen, die mehr als eine Bedingung haben. Erst wenn (“If”) die erste Bedingung falsch ist, wird die zweite Bedingung geprüft.  Und wenn die zweite Bedingung ebenfalls falsch ist, dann wird die App auf „else“ gesetzt oder sie tut nichts. Seht euch das folgende Diagramm an. Die Bedingungen sind blaugrün und die möglichen Ergebnisse sind violett. 

Eine bedingte Anweisung mit einer Bedingung und zwei möglichen Ergebnissen.  Eine bedingte Anweisung mit zwei Bedingungen und drei möglichen Ergebnissen. Bedingung 2 wird nur geprüft, wenn Bedingung 1 falsch ist. 

So sehen die Blöcke in App Inventor aus: 

Eure erste Bedingung kommt neben if, und eure zweite Bedingung kommt neben else if. Sehen wir uns ein Beispiel an:

Ihr entwerft eine App, die nur für Nutzer:innen im Alter von 13-18 Jahren gedacht ist. Ihr wollt, dass eure App euren Nutzer:innen sagt, ob sie zu jung oder zu alt sind, um eure App zu nutzen. Ihr habt drei mögliche Ergebnisse:

  1. Der/die Nutzer:in ist zu jung
  2. Der/die Nutzer:in ist zu alt
  3. Der/die Nutzer:in hat das richtige Alter

Ihr lasst den oder die Nutzer:in das Alter in die App eingeben und speichert es in einer Variable namens „age“ (“Alter”). Auf diese Weise könnt ihr später eine if/else/else if -Anweisung verwenden, um das Alter der Nutzerin oder des Nutzers zu überprüfen.

App Inventor

Thunkable

Die erste Bedingung prüft, ob der oder die Nutzer:in jünger als 13 Jahre ist. Trifft das zu, dann wird sie von der App darauf aufmerksam gemacht, dass sie zu jung ist. Wenn sie nicht jünger als 13 ist, dann prüft die App, ob sie älter als 18 ist. Ist dies der Fall, wird sie in der App darauf hingewiesen, dass sie zu alt ist. Ist dies nicht der Fall, wird ihr in der App mitgeteilt, dass sie das richtige Alter hat.  

Ihr könnt eurer bedingten Anweisung so viele Bedingungen hinzufügen, wie ihr wollt, indem ihr „else if“ verwendet. Es ist dabei sehr, auf die Reihenfolge zu achten, in der die App die Bedingungen prüft. Ihr Code beginnt immer mit der ersten Bedingung und macht dann der Reihe nach weiter, bis er eine Bedingung findet, die wahr ist. Wenn er eine Bedingung findet, die wahr ist, führt er den Code hinter dieser Bedingung aus. Wenn keine der Bedingungen wahr ist, führt er den Code im anderen („else“) Teil aus. 

Diese Punkte solltet ihr bei der Verwendung von if/else/else if-Anweisungen beachten: 

  • Ihr könnt so viele Bedingungen überprüfen lassen, wie ihr wollt. 
  • Der Code geht die Bedingungen von oben nach unten durch, also stellt die Bedingung, die zuerst getestet werden soll, an den Anfang. 
  • Der einzige Code, der ausgeführt wird, ist der Code hinter der ersten für wahr befundenen Aussage. 

In der nächsten Coding-Lektion schauen wir uns die Logik und ein paar fortgeschrittenere Bedingungen an, die vor allem die älteren Teams (15-18 Jahre) ausprobieren sollten. Wenn ihr in einem jüngeren Team seid (10-14 Jahre) und ihr zum ersten Mal lernt, wie man programmiert, könnt ihr diese Lektion einfach überspringen.

Aktivität: Ein noch besserer Magic 8 Ball  

In dieser Aktivität werdet ihr eure Magic 8 Ball-App verbessern. In der letzten Lektion habt ihr dafür gesorgt, dass der oder die Nutzer:in einen Text eingibt, bevor er oder sie eine Antwort erhält. Der oder die Nutzer:in brauchte jedoch keine neue Frage zu stellen, um eine neue Antwort zu erhalten. Er oder sie konnte immer wieder die Eingabetaste drücken, und solange sich Text im Textfeld befand, gab unsere App immer eine Antwort. 

Lasst uns das ändern! Wir werden eine if / else / else if-Bedingung programmieren, um zu prüfen, ob der oder die Nutzer:in einen Text eingegeben hat. Wenn die Person Text eingegeben hat, werden wir prüfen, ob die Frage eine andere ist als die zuletzt gestellte Frage.  

Wir richten eine Variable namens lastQuestion (“Letzte Frage”) ein, die sich an die letzte Frage erinnert, die der oder die Nutzer:in gestellt hat.  

So funktioniert unser Code: Jedes Mal, wenn der oder die Nutzer:in eine Antwort von unserem Magic 8 Ball erhält, ersetzt unser Code die Variable lastQuestion durch das, was im Textfeld steht.  

Jetzt müsst ihr die App nur noch dazu bringen, zu überprüfen, ob die Variable lastQuestion mit dem übereinstimmt, was jetzt in dem Textfeld steht. Dafür müsst ihr eine If / Else / Else if-Anweisung erstellen. Ladet diesen Beispielcode herunter: 

document

Reflexion

In dieser Lektion habt ihr gelernt, wie man “If / Else / Else If” bedingte Anweisungen verwendet.  

  • Was für andere Bedingungen könnten die Magic 8 Ball-App gut ergänzen? 
  • An welcher Stelle in eurer App ein möchtet ihr sie vielleicht nutzen? 

Technovation Challenge

Bewertungskriterien für den internationalen App-Wettbewerb

Anhand der Kategorien und Kriterien wird die App am Schluss der Technovation Saison von einer Jury bewertet werden. Mit dieser Lektion könnt ihr im technischen Teil Punkte für euer Demo-Video sammeln. Sie wird euch auch helfen, damit eure App besser funktioniert! Hier könnt ihr den Bewertungsbogen einsehen.