Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Bedingte Anweisung und Verzweigung

Eine bedingte Anweisung ist eine Kontrollstruktur in der Programmierung. Ein Programmabschnitt wird dabei nur unter einer bestimmten Bedingung ausgeführt.

Inhalt6 Abschnitte
  1. 1. Grundidee
  2. 2. Bedingte Anweisung
  3. 3. Einfache Verzweigung
  4. 4. Auswahloperator
  5. 5. Mehrfache Verzweigungen
  6. 6. Zwei Formen der Fallunterscheidung

Grundidee

Eine bedingte Anweisung ist eine Kontrollstruktur in der Programmierung. Sie sorgt dafür, dass ein Programmabschnitt nur unter einer bestimmten Bedingung ausgeführt wird. Eine Verzweigung legt fest, welcher von zwei oder mehreren Programmabschnitten ausgeführt wird. Die Auswahl hängt von einer oder mehreren Bedingungen ab.

Solche Konstrukte sind wichtig, weil Programme damit auf unterschiedliche Situationen reagieren können: Ein bestimmter Code wird nur ausgeführt, wenn eine Aussage gerade wahr ist; andernfalls wird er übersprungen oder ein anderer Codeabschnitt ausgeführt.

Bedingte Anweisung

Eine bedingte Anweisung besteht aus einer Bedingung und einem Codeabschnitt mit einer oder mehreren Anweisungen. Wenn der Programmablauf diese Stelle erreicht, wird zuerst die Bedingung ausgewertet. Trifft sie zu, wird der Codeabschnitt ausgeführt. Trifft sie nicht zu, wird er übersprungen. Danach läuft das Programm mit den folgenden Anweisungen weiter.

In Pseudocode hat eine bedingte Anweisung die Form:

falls Bedingung dann Anweisung(en) ende

Die Bedingung ist ein Ausdruck, der nach den Regeln der jeweiligen Programmiersprache ausgewertet wird. Dazu gehören Semantik und Vorrangfolge der Operatoren. Das Ergebnis muss ein Wahrheitswert sein: wahr, wenn die Bedingung zutrifft, oder falsch, wenn sie nicht zutrifft. In manchen Sprachen darf das Ergebnis auch nach den Umwandlungsregeln der Sprache implizit in einen Wahrheitswert umwandelbar sein.

Eine Bedingung ist zeitabhängig. Sie wird jedes Mal neu ausgewertet, wenn der Programmablauf die bedingte Anweisung erreicht. Deshalb kann dieselbe Bedingung bei mehreren Durchläufen einmal wahr und ein anderes Mal falsch sein.

Beispiel in C-ähnlicher Syntax, etwa in C++, C# oder Java:

if (Temperatur < 20) Heizung_Einschalten();

Ist der Wert Temperatur kleiner als 20, wird Heizung_Einschalten() ausgeführt. Ist Temperatur nicht kleiner als 20, wird diese Anweisung übersprungen. In SQL zeigt DELETE FROM tabelle WHERE tabelle.id = 42; ein ähnliches Prinzip: Alle Tabelleneinträge, für die id = 42 gilt, werden gelöscht; die übrigen bleiben unberührt.

Einfache Verzweigung

Eine Verzweigung, auch Auswahl oder Selektion genannt, besteht aus einer Bedingung und zwei Codeabschnitten. Zuerst wird die Bedingung ausgewertet. Wenn sie zutrifft, wird der erste Codeabschnitt ausgeführt. Andernfalls wird der zweite Codeabschnitt ausgeführt.

In Pseudocode lautet die Form:

falls Bedingung dann Anweisung(en) sonst Anweisung(en) ende

Beispiel in C:

if (Temperatur < 20) Heizung_Einschalten(); else Heizung_Ausschalten();

Hier wird bei einer Temperatur unter 20 die Heizung eingeschaltet. Wenn die Bedingung nicht erfüllt ist, wird stattdessen die Heizung ausgeschaltet.

Auswahloperator

In manchen Programmiersprachen gibt es einen ternären Auswahloperator. Er wird auch bedingter Ausdruck oder Konditionaloperator genannt. „Ternär“ bedeutet hier, dass der Operator drei Bestandteile verarbeitet: eine Bedingung, einen Ausdruck für den Fall wahr und einen Ausdruck für den Fall falsch.

Die Form entspricht: wenn Bedingung dann Ausdruck1 sonst Ausdruck2. Zuerst wird die Bedingung ausgewertet. Ist sie wahr, wird Ausdruck1 ausgewertet. Ist sie falsch, wird Ausdruck2 ausgewertet. Das Ergebnis dieses ausgewerteten Ausdrucks ist zugleich das Ergebnis des Auswahloperators.

In C kann derselbe Vorgang als if-else-Konstrukt oder mit Auswahloperator geschrieben werden:

if (zahl==5) str1 = "Zahl gleich 5"; else str1 = "Zahl ungleich 5";

const char* str2 = zahl==5 ? "Zahl gleich 5" : "Zahl ungleich 5";

Der Auswahloperator kann auch bei der Initialisierung einer immutablen Variable verwendet werden, was mit if-else in dieser Form nicht möglich ist. In vielen Sprachen wird derselbe Gedanke mit if-then-else formuliert, zum Beispiel in F#: let x = if zahl < 5 then 0 else 1.

Mehrfache Verzweigungen

Viele Programmiersprachen kennen mehrfache Verzweigungen, auch Fallunterscheidungen genannt. Dabei gibt es zwei grundlegende Formen.

In der ersten Form bestimmt das Ergebnis eines Ausdrucks, welcher von mehreren Codeabschnitten ausgeführt wird und ob überhaupt einer davon ausgeführt wird. In der zweiten Form gibt es mehrere Bedingungen, denen jeweils ein Codeabschnitt zugeordnet ist. In beiden Formen kann ein else-Teil vorhanden sein. Dieser else-Teil wird verwendet, wenn keine der vorher vorgesehenen Möglichkeiten passt.

Zwei Formen der Fallunterscheidung

Bei der ersten Form wird ein Ausdruck ausgewertet und mit angegebenen Werten verglichen. Bei Übereinstimmung werden die Anweisungen zu diesem Wert ausgeführt. Wenn kein Wert übereinstimmt, werden die Anweisungen nach sonst ausgeführt, sofern ein else-Teil vorhanden ist. In C wird dafür zum Beispiel switch verwendet. Dort kann break nötig sein, damit nicht auch die folgenden Anweisungen ausgeführt werden. Ein C#-Beispiel prüft anhand von date.Month, ob ein Datum in spring, summer, autumn oder winter liegt; bei keinem passenden Wert wird invalid date gesetzt.

Die genaue Semantik solcher Konstrukte hängt stark von der Programmiersprache ab. Der else-Teil ist nicht immer erlaubt, manchmal aber verpflichtend. In manchen Sprachen kann es zu einem Laufzeitfehler kommen, wenn der else-Teil fehlt und der Ausdruck keinen angegebenen Wert annimmt.

Bei der zweiten Form werden mehrere Bedingungen der Reihe nach geprüft. Sobald eine Bedingung zutrifft, wird der zugehörige Codeabschnitt ausgeführt, und die mehrfache Verzweigung ist beendet. Wenn keine Bedingung zutrifft, wird der else-Teil ausgeführt, falls er vorhanden ist. Technisch ist dies in den meisten Sprachen kein eigenes Konstrukt, sondern eine Verkettung von Verzweigungen: Jede Verzweigung außer der ersten steht im else-Teil der vorherigen Verzweigung. Ein C#-Beispiel prüft so, ob ein Zeitpunkt vor einem Zeitraum, nach einem Zeitraum oder innerhalb eines Zeitraums liegt.

Lernvideos zu Bedingte Anweisung und Verzweigung

Weiterlesen

Aktivitätsdiagramm Ein Aktivitätsdiagramm (englisch activity diagram) ist ein Verhaltensdiagramm der Unified Modeling Language (UML), einer Modellierungssprache für Software … Anweisung (Programmierung) Anweisungen sind üblicherweise Zuweisungen, Kontrollanweisungen (wie Sprünge, Schleifen und bedingte Anweisungen) und Prozeduraufrufe. Abhängig von der … Kontrollstruktur Kontrollstrukturen sind in der Informatik die Vorgabe, in welcher Reihenfolge die Handlungsschritte eines Algorithmus abgearbeitet werden. Programmierung Beim Programmieren sind wesentliche Aspekte zur Softwarequalität zu berücksichtigen und durch die Gestaltung des Quellcodes umzusetzen. Siehe dazu als Beispiele … Programmiersprache Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es … Semantik In einem engeren Sinn behandelt die Semantik die Bedeutung vor allem sprachlicher Zeichen, wie Sätzen, Satzteilen, Wörtern oder Lexemen. Sie ist dann Teil der … C (Programmiersprache) C ist eine imperative und prozedurale Programmiersprache, die der Informatiker Dennis Ritchie in den frühen 1970er Jahren an den Bell Laboratories entwickelte. Java (Programmiersprache) Java ist eine objektorientierte Programmiersprache und eine eingetragene Marke des Unternehmens Sun Microsystems, welches 2010 von Oracle übernommen wurde. Funktion (Programmierung) Eine Funktion (englisch function) ist in der Informatik und in verschiedenen höheren Programmiersprachen die Bezeichnung eines Programmkonstrukts, … Schleife (Programmierung) Eine Schleife (auch „Wiederholung“ oder englisch loop) ist eine Kontrollstruktur in Programmiersprachen. Sie wiederholt einen Anweisungs-Block – den … Variable (Programmierung) In der Programmierung ist eine Variable ein abstrakter Behälter für einen Wert, der bei der Ausführung eines Computerprogramms auftritt. Parameter (Informatik) Parameter – (deutsch) auch Übergabewerte genannt – sind in der Informatik Variablen, durch die ein Computerprogramm (oft ein Unterprogramm) auf die …