
If-else-Anweisungen

Upgrade für mehr Inhalte
True or false? When using "If else" instructions, in the movie's example, only one condition is required.
Lina hat eine Pralinenschachtel mit Vollmilchschokolade und dunkler Schokolade gekauft. Sie hat ihrem Roboter beigebracht, Maria und Leon ihre Lieblingssorten zu geben. So sehen die Anweisungen in Linas Pseudocode aus: "Nimm Praline" Wenn es Vollmilchschokolade ist, gib Maria die Praline. Wenn es dunkle Schokolade ist, gib Leon die Praline. Schauen wir mal, wie der Pseudocode funktioniert.
Der Roboter nimmt eine Praline und sie ist zufällig aus Vollmilchschokolade. Somit ist die erste Bedingung "Vollmilchschokolade" erfüllt, deshalb gibt der Roboter Maria die Praline. Nun hat der Roboter keine Praline mehr in der Hand. Trotzdem geht er zur nächsten Anweisung: "Wenn dunkle Schokolade" Aber der Roboter hält gar keine Praline in der Hand. Also muss er nicht überprüfen, ob sie dunkel ist.
Wie kann Lina den Roboter dazu anweisen? Linas Pseudocode enthält zwei Bedingungen. "Wenn Vollmilchschokolade" und "Wenn dunkle Schokolade" Die Pralinenschachtel enthält nur zwei verschiedene Sorten. Wenn es nicht Vollmilchschokolade ist, die der Roboter erwischt, muss es dunkle Schokolade sein. Der Pseudocode kann geändert werden zu: "Wenn Vollmilchschokolade" "Gib Maria die Praline" "Ansonsten" "Gib Leon die Praline". Für Maria und Leon ist also nur eine Bedingung notwendig, damit sie ihre Lieblingspraline bekommen.
Testen wir mal Linas Pseudocode. Der Roboter nimmt eine Praline und es ist Vollmilchschokolade. Die Bedingung "Vollmilchschokolade" ist erfüllt. Der Roboter gibt Maria die Praline. Und dann ...
Hast du gesehen, was passiert ist? Als die Bedingung "Vollmilchschokolade" erfüllt war, hat der Roboter die Anweisung "Ansonsten" und die Anweisung "Gib Leon die Praline" übersprungen. Das Programm ist zu Ende, nachdem der Roboter Maria die Praline gegeben hat. Starten wir das Programm noch mal von vorn. Der Roboter nimmt eine Praline.
Diesmal ist es dunkle Schokolade. Die Bedingung ist nicht erfüllt und das Programm überspringt die Anweisung "Gib Maria die Praline" Jetzt weiß der Roboter, dass es keine Vollmilchschokolade ist und führt anschließend die Anweisungen "Ansonsten" und "Gib Leon die Praline" aus. Es reicht dem Roboter zu überprüfen, ob es Vollmilchschokolade ist, um zu wissen, wer die Praline bekommt. Wenn Lina weniger Bedingungen nutzt, wird der Code effizienter. Einmal anstatt zweimal zu testen, ob eine Bedingung erfüllt ist, reicht aus.
Linas Code ist so auch leichter zu lesen. Es ist ein eleganterer Code. Ja, Programmierer sprechen wirklich von "elegantem Code". Der neue Pseudocode ist die bessere Variante, um die Aufgabe zu erfüllen. Es ist ein besserer Algorithmus für das Verteilen von Pralinen.
Jetzt ist der Code also eleganter als er anfangs war. Kein sperrig aussehender Code hier!