www.wikidata.de-de.nina.az
Eine bedingte Anweisung ist eine Kontrollstruktur in der Programmierung Ein Programmabschnitt wird dabei nur unter einer bestimmten Bedingung ausgefuhrt Aktivitatsdiagramm einer if else AnweisungEine Verzweigung legt fest welcher von zwei oder mehreren Programmabschnitten abhangig von einer oder mehreren Bedingungen ausgefuhrt wird Inhaltsverzeichnis 1 Bedingte Anweisung 2 Verzweigung 2 1 Aufbau 2 2 Auswahloperator 3 Mehrfache Verzweigung 3 1 Erste Form 3 2 Zweite Form 4 Siehe auchBedingte Anweisung Bearbeiten nbsp Struktogramm einer if AnweisungEine bedingte Anweisung besteht aus einer Bedingung und einem Codeabschnitt der wiederum aus einer oder mehreren Anweisungen besteht Wird beim Programmablauf die bedingte Anweisung erreicht dann wird erst die Bedingung ausgewertet und falls diese zutrifft und nur dann wird anschliessend der Codeabschnitt ausgefuhrt Danach wird die Programmausfuhrung mit den auf die bedingte Anweisung folgenden Anweisungen fortgesetzt In Pseudocode formuliert hat eine bedingte Anweisung folgende Form falls Bedingung dann Anweisung en ende Die Bedingung ist ein Ausdruck der nach den dafur geltenden Regeln der Programmiersprache Semantik und Vorrangfolge der Operatoren ausgewertet wird Er muss als Resultat einen Wahrheitswert wahr Bedingung trifft zu oder falsch Bedingung trifft nicht zu liefern oder sein Resultat muss nach den Umwandlungsregeln der Sprache implizit in einen Wahrheitswert umwandelbar sein Die Bedingung ist nicht generell gultig sondern zeitabhangig Sie wird jedes Mal ausgewertet wenn die bedingte Anweisung beim Programmablauf erreicht wird und es kommt darauf an ob sie zu dem jeweiligen Zeitpunkt zutrifft oder nicht Das kann sich von mal zu mal andern wenn die bedingte Anweisung mehrmals erreicht wird Beispiele In vielen Programmiersprachen mit C ahnlicher Syntax z B C C und Java werden bedingte Anweisungen folgendermassen formuliert if Temperatur lt 20 Heizung Einschalten Ist der hier abgefragte Wert Temperatur kleiner als 20 wird die Funktion Heizung Einschalten ausgefuhrt Ist die Bedingung nicht erfullt also Temperatur nicht kleiner als 20 wird die Anweisung ubersprungen In der Datenbanksprache SQL gibt es etwa folgendes Konstrukt DELETE FROM tabelle WHERE tabelle id 42 Dies entspricht einer Schleife die uber die Eintrage in einer Tabelle geht und in der fur jeden Tabelleneintrag eine bedingte Anweisung ausgefuhrt wird Alle Eintrage fur die die Bedingung id 42 zutrifft werden geloscht alle ubrigen Eintrage bleiben dabei unberuhrt Verzweigung BearbeitenAufbau Bearbeiten nbsp Struktogramm einer if else AnweisungEine Verzweigung auch Auswahl oder Selektion genannt besteht aus einer Bedingung und zwei Codeabschnitten Wieder wird erst die Bedingung ausgewertet und falls sie zutrifft wird anschliessend der erste Codeabschnitt ausgefuhrt anderenfalls wird der zweite Codeabschnitt ausgefuhrt falls Bedingung dann Anweisung en sonst Anweisung en ende Beispiel in der Programmiersprache C if Temperatur lt 20 Heizung Einschalten else Heizung Ausschalten Auswahloperator Bearbeiten In manchen Programmiersprachen gibt es den ternaren Auswahloperator der auch bedingter Ausdruck genannt wird Dieser Operator kann zum Beispiel fur Wertzuweisungen an Variablen verwendet werden aber auch Bestandteil von komplexeren Ausdrucken sein Er verarbeitet drei Parameter in der Form wenn i Bedingung i dann i Ausdruck1 i sonst i Ausdruck2 i Zuerst wird i Bedingung i ausgewertet Ist das Ergebnis wahr wird i Ausdruck1 i ausgewertet anderenfalls i Ausdruck2 i Das dabei entstehende Ergebnis ist auch das Ergebnis des Auswahloperators Folgender Code zeigt zweimal dieselbe Funktion einmal als if else Konstrukt und einmal in Kurzschreibweise Beispiel in der Programmiersprache C Variante mit if else Anweisung const char str1 if zahl 5 str1 Zahl gleich 5 else str1 Zahl ungleich 5 Variante mit Auswahloperator const char str2 zahl 5 Zahl gleich 5 Zahl ungleich 5 Variante mit Auswahloperator Zuweisung einer immutablen Variable bei if else nicht moglich const char const str3 zahl 5 Zahl gleich 5 Zahl ungleich 5 In vielen Sprachen wird der Operator mit den Worten if then else formuliert z B in F let x if zahl lt 5 then 0 else 1Mehrfache Verzweigung BearbeitenIn vielen Programmiersprachen gibt es auch mehrfache Verzweigungen auch Fallunterscheidungen genannt Dabei sind zwei Formen zu unterscheiden Entweder bestimmt das Ergebnis eines Ausdrucks welcher von mehreren Codeabschnitten ausgefuhrt wird und ob uberhaupt einer davon ausgefuhrt wird oder es gibt mehrere Bedingungen denen jeweils ein Codeabschnitt zugeordnet ist In beiden Formen kann ein else Teil vorhanden sein Erste Form Bearbeiten nbsp Struktogramm einer Switch AnweisungDer Ausdruck wird ausgewertet und mit den Wertangaben hier Wert1 bis Wert3 verglichen Bei Ubereinstimmung werden die Anweisungen nach der Wertangabe ausgefuhrt Wenn kein Wert ubereinstimmt werden die Anweisungen nach sonst ausgefuhrt falls der else Teil vorhanden ist falls Ausdruck gleich Wert1 Anweisung en Wert2 Anweisung en Wert3 Anweisung en sonst Anweisung en ende Beispiel in der Programmiersprache C switch zahl case 0 v 1 break break ist hier notig damit nicht auch die case 1 v 2 break folgenden Anweisungen ausgefuhrt werden Besonderheit in C case 2 v 5 break default v 10 der sonst Teil Das folgende Beispiel in der Programmiersprache C pruft in welcher meteorologischen Jahreszeit ein Datum liegt und gibt eine Textzeile aus int month date Month string season switch month case 3 case 4 case 5 season spring break case 6 case 7 case 8 season summer break case 9 case 10 case 11 season autumn break case 12 case 1 case 2 season winter break default season invalid date break Console WriteLine The date is in season Die genaue Semantik eines solchen Konstrukts hangt stark von der jeweiligen Programmiersprache ab So ist z B der else Teil nicht immer erlaubt manchmal muss er aber vorhanden sein Manchmal schreibt die Sprachdefinition auch vor dass es zu einem Laufzeitfehler kommt falls der else Teil fehlt und der Ausdruck keinen der angegebenen Werte annimmt Zweite Form Bearbeiten nbsp Datenflussdiagramm einer verschachtelten bedingten if else AnweisungDie Bedingungen werden der Reihe nach ausgewertet solange bis eine davon zutrifft Dann wird der zu dieser Bedingung gehorende Codeabschnitt ausgefuhrt und die Behandlung der mehrfachen Verzweigung ist damit beendet Wenn keine der Bedingungen zutrifft wird der else Teil ausgefuhrt falls er vorhanden ist falls Bedingung dann Anweisung en sonst falls Bedingung2 dann Anweisung en sonst Anweisung en ende Die folgende Methode in der Programmiersprache C pruft ob ein Zeitpunkt vor nach oder in einem gegebenen Zeitraum liegt und gibt eine Textzeile aus void Compare DateTime time DateTime startTime DateTime endTime if time lt startTime Console WriteLine The point in time is before the period else time gt startTime if time gt endTime Console WriteLine The point in time is after the period else time gt startTime amp amp time lt endTime Console WriteLine The point in time is in the period Siehe auch BearbeitenBefehlssatz Kontrollfluss Yoda Conditions Abgerufen von https de wikipedia org w index php title Bedingte Anweisung und Verzweigung amp oldid 234659549