Zum Inhalt springen
Informatik · Klasse 11 · Grundlagen der Programmierung und Algorithmik · 1. Halbjahr

Kontrollstrukturen: Verzweigungen (if/else)

Steuerung des Programmflusses durch logische Entscheidungen mit bedingten Anweisungen.

KMK BildungsstandardsKMK: Sekundarstufe II - Algorithmen entwerfenKMK: Sekundarstufe II - Problemlösen

Über dieses Thema

Kontrollstrukturen wie Verzweigungen mit if/else-Anweisungen sind zentral für die Steuerung des Programmflusses. Sie ermöglichen logische Entscheidungen, indem sie Bedingungen prüfen und je nach Ergebnis unterschiedliche Codeblöcke ausführen. Schülerinnen und Schüler lernen, komplexe Entscheidungsbäume in einfache Ja-Nein-Fragen zu zerlegen. Verschachtelte if-Anweisungen können die Lesbarkeit und Wartbarkeit erschweren, daher ist es wichtig, if-else-if-Strukturen zu bevorzugen, wenn mehrere Bedingungen aufeinanderfolgend geprüft werden sollen.

In der Praxis analysieren Lernende, wann unabhängige if-Anweisungen sinnvoll sind und wann eine Kette von else-if vorzuziehen ist. Dies stärkt das Problemlösevermögen und das Entwerfen von Algorithmen gemäß KMK-Standards. Beispiele aus dem Alltag, wie ein Ampelregler oder ein Notensystem, machen abstrakte Konzepte greifbar.

Aktives Lernen ist hier besonders vorteilhaft, da Schülerinnen und Schüler durch eigenes Programmieren und Testen die Auswirkungen von Bedingungen direkt erleben, Fehler korrigieren und so ein tiefes Verständnis für Code-Strukturen aufbauen.

Leitfragen

  1. Wie zerlegt man komplexe Entscheidungsbäume in einfache Ja-Nein-Fragen?
  2. Analysieren Sie die Auswirkungen verschachtelter if-Anweisungen auf die Lesbarkeit und Wartbarkeit des Codes.
  3. Begründen Sie, wann eine if-else-if-Struktur einer Reihe unabhängiger if-Anweisungen vorzuziehen ist.

Lernziele

  • Analysieren Sie die Auswirkungen von Verschachtelungstiefe bei if-else-Strukturen auf die Komplexität und Lesbarkeit von Algorithmen.
  • Vergleichen Sie die Effizienz und Klarheit von separaten if-Anweisungen gegenüber einer if-else-if-Kette für mehrbedingte Entscheidungen.
  • Entwerfen Sie einen Algorithmus, der eine Reihe von Benutzereingaben verarbeitet und basierend auf definierten Bedingungen unterschiedliche Ausgaben generiert.
  • Erklären Sie die Logik hinter der Zerlegung komplexer Entscheidungsszenarien in binäre Ja-Nein-Fragen für die Programmierung.

Bevor es losgeht

Datentypen und Variablen

Warum: Schüler müssen verstehen, wie Daten gespeichert und benannt werden, um sie in Bedingungen verwenden zu können.

Grundlegende arithmetische und logische Operatoren

Warum: Die Fähigkeit, einfache Vergleiche (>, <, ==) und logische Verknüpfungen durchzuführen, ist für die Formulierung von Bedingungen unerlässlich.

Schlüsselvokabular

BedingungEin Ausdruck, der zu einem Wahrheitswert (wahr oder falsch) ausgewertet wird und bestimmt, welcher Codeblock ausgeführt wird.
KontrollstrukturEin Sprachkonstrukt, das die Reihenfolge der Ausführung von Programmcode steuert, wie z.B. Verzweigungen und Schleifen.
VerschachtelungDie Einbettung einer Kontrollstruktur innerhalb einer anderen, z.B. ein if-Statement innerhalb eines anderen if-Statements.
Logischer OperatorSymbole wie 'und' (&&), 'oder' (||) und 'nicht' (!), die verwendet werden, um mehrere Bedingungen zu kombinieren oder zu negieren.

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungMehrere unabhängige if-Anweisungen sind immer äquivalent zu if-else-if-Ketten.

Was Sie stattdessen lehren sollten

Unabhängige ifs prüfen alle Bedingungen, auch wenn frühere wahr sind, was unnötige Ausführungen verursacht und Logikfehler birgt. if-else-if stoppt bei der ersten wahren Bedingung.

Häufige FehlvorstellungVerschachtelungen machen Code immer komplexer und unlesbar.

Was Sie stattdessen lehren sollten

Richtige Verschachtelung strukturiert logisch, aber tiefe Ebenen reduzieren Wartbarkeit. Flache Strukturen mit frühem Return oder Switch sind oft besser.

Häufige FehlvorstellungBedingungen müssen immer boolesche Werte sein.

Was Sie stattdessen lehren sollten

In vielen Sprachen werden nicht-booleesche Ausdrücke implizit zu true/false evaluiert, was zu unerwarteten Verhalten führen kann. Explizite Vergleiche sind sicherer.

Ideen für aktives Lernen

Alle Aktivitäten ansehen

Bezüge zur Lebenswelt

  • In der Softwareentwicklung für Navigationssysteme werden if-else-Strukturen verwendet, um basierend auf Verkehrsdaten, Geschwindigkeitsbegrenzungen und dem Ziel des Nutzers die optimale Route zu berechnen und alternative Wege vorzuschlagen.
  • Bei der Entwicklung von Online-Banking-Anwendungen steuern if-Anweisungen den Zugriff auf Kontoinformationen, überprüfen die Gültigkeit von Transaktionsdetails und leiten den Benutzer basierend auf seinem Kontostand oder seinen Berechtigungen durch verschiedene Menüs.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Geben Sie den Lernenden ein kurzes Programmfragment mit einer Reihe von verschachtelten if-Anweisungen. Bitten Sie sie, die Ausgabe für zwei verschiedene Eingabewerte vorherzusagen und einen Satz zu schreiben, der erklärt, wie die Verschachtelung die Logik beeinflusst.

Kurze Überprüfung

Stellen Sie eine Aufgabe: 'Schreiben Sie eine if-else-if-Struktur, die prüft, ob eine eingegebene Zahl positiv, negativ oder null ist.' Beobachten Sie die Schüler bei der Umsetzung und geben Sie direktes Feedback zu Syntax und Logik.

Diskussionsfrage

Diskutieren Sie mit der Klasse: 'Wann ist es besser, drei separate if-Anweisungen zu verwenden, anstatt eine if-else-if-Kette? Geben Sie Beispiele, bei denen beide Ansätze ihre Berechtigung haben könnten.'

Häufig gestellte Fragen

Wie zerlegt man komplexe Entscheidungen in if/else?
Beginnen Sie mit der grobsten Unterscheidung und zerlegen Sie jeden Zweig weiter. Nutzen Sie Papier oder Tools wie Draw.io für den Baum. Testen Sie mit Eckfällen, um Lücken zu finden. Dies entspricht KMK-Standards zum Algorithmen-Entwurf und trainiert systematisches Denken in der Oberstufe.
Warum if-else-if statt mehrerer ifs?
if-else-if prüft sequentiell und stoppt bei der ersten wahren Bedingung, was effizienter ist und logische Fehler vermeidet. Mehrere ifs führen zu allen Prüfungen, selbst unnötigen. In der Praxis verbessert das die Performance und Lesbarkeit, besonders bei gegenseitig ausschließenden Fällen wie Notenvergabe.
Was sind häufige Fehler bei Verschachtelungen?
Vergessene else-Zweige oder falsche Einrückung täuschen Hierarchien vor. Schülerinnen und Schüler lernen durch Debugging, dass tiefe Verschachtelungen Wartbarkeit mindern. Empfehlen Sie Guard-Clauses oder Polymorphie in OO-Sprachen für Klarheit.
Warum ist aktives Lernen hier vorteilhaft?
Aktives Lernen lässt Schülerinnen und Schüler Code schreiben, ausführen und modifizieren, um Effekte von if/else direkt zu sehen. Sie entdecken selbst, warum eine Struktur fehlschlägt, wie Endlosschleifen oder falsche Pfade. Das fördert Problemlösen nach KMK und baut Selbstvertrauen auf, statt passivem Lesen.

Planungsvorlagen für Informatik