Verzweigungen, bedingte Anweisungen

Es ist ein Grundprinzip in der Programmierung wie im täglichen Leben, dass man in Abhängigkeit von bestimmten (Speicher-)Zuständen unterschiedliche Entscheidungen trifft und nachfolgend auf Grund der Entscheidung andere Schritte (Anweisungen) durchführt.
Es gibt daher in jeder Programmiersprache das Konstrukt der bedingten Anweisung.

if-then-else-Anweisung

Am Beginn einer if-Anweisung steht immer eine Frage, die mit ja oder nein beantwortet werden kann, oder eine Bedingung, die wahr oder falsch ist.
Wenn (if) die Frage mit Ja beantwortet wird bzw. die Bedingung wahr (true) ist, wird der Anweisungsblock 1 ausgeführt, sonst (else) der Anweisungsblock 2.
Das ist der Grundaufbau einer Entweder-Oder-Entscheidung: if-then-else

Darstellung einer if-then-else-Anweisung als Struktogramm

if-then-Anweisung

Eine vereinfache Form der if-then-else-Anweisung ist die if-then-Anweisung bei der nur im Fall, dass die Bedingung wahr ist, ein Anweisungsblock aufgeführt wird. Im anderen Fall passiert nichts und der Programmzähler springt zur nächsten Anweisung nach der if-Anweisung.

Darstellung einer if-then-Anweisung als Struktogramm


if-then-else if-Anweisung

Mehrere immer im else-Zweig geschachtelte if-then-else-Anweisungen können vereinfacht zu einer if-then-else if-Anweisung zusammengefasst werden.
Dabei hat man eine Folge von Bedingungen (Bedingung 1 bis Bedingung n). Wenn die erste Bedingung wahr ist wird der dazugehörige Anweisungblock 1 abgearbeitet. Falls nicht wird die zweite Bedingung geprüft. Falls diese wahr ist wird der zweite Anweisungsblock abgearbeitet. Falls auch die zweite Bedingung falsch ist, wird die dritte abgefragt usw. Wenn keine der Bedingungen wahr ist, wird optional ein abschließender Anweisungsblock ausgewführt.

Darstellung einer geschachtelten if-then-else-Anweisung als Struktogramm

Beispiel: if-then-else if-Anweisung als if-then-else-Anweisung geschrieben

if (Bedingung 1){
   Anweisungsblock 1
}  else if (Bedingung 2){
   Anweisungsblock 2
}  else if (Bedingung 3){
   Anweisungsblock 3
}  else {
   Anweisungsblock 4
};

entspricht

if (Bedingung 1){
   Anweisungsblock 1
}  else {
   if (Bedingung 2){
      Anweisungsblock 2
   }  else {
      if (Bedingung 3){
         Anweisungsblock 3
      }  else {
         Anweisungsblock 4
      };
   };   
};

case-Anweisung Fallunterscheidung

Eine spezielle Form der if-then-else if-Anweisung ist die Fallunterscheidung (switch- oder case-Anweisung).
Bei dieser wird zuerst ein Term festgelegt und anschließend werden möglich Fälle(Zustände) des Terms aufgelistet, bei denen bestimmte Anweisungsblöcke ausgeführt werden sollen.

Beispiel: switsch-Anweisung als if-then-else if-Anweisung geschrieben

switch (term){
   case Fall_1:
      Anweisungsblock 1;
      break;
   case Fall_2:
      Anweisungsblock 2;
      break;
   case Fall_3:
      Anweisungsblock 3;
      break;
   default:
      Anweisungsblock 4;
      break;
};

entspricht

if (term erfüllt Fall_1){
   Anweisungsblock 1
}  else if (term erfüllt Fall_2){
   Anweisungsblock 2
}  else if (term erfüllt Fall_3){
   Anweisungsblock 3
}  else {
   Anweisungsblock 4
};

Module, die für die Durchführung vorausgesetzt werden