Programmieren
 
 
 
 
 
C-Grundkurs
 
 
 
 
 
.. IF - ELSE IF - ELSE   -Verzweigung
 
 

 
 
 
 
 
Die if - Abfrage gehört zu den bedingten Sprüngen. Das bedeutet, aufgrund einer logischen Bedingung kann eine Verzweigung in dem sonst linearen Programmablauf stattfinden. Die if-Verzweigung besitzt zwei wahlweise (optionale) Erweiterungen und ist immer Teil einer Funktion (eines Unterprogramms).

 if - Befehl
 if - else Befehl
 if - elseif - elseif - else Befehl
 
 
 
 

 

 

 

 

if - Befehl

Stösst die Programmausführung auf einen if ( .. ) Befehl, wird die logische Bedingung in den runden Klammern auf ihren Wahrheitsgehalt geprüft. Ist die Bedingung wahr (log 1), wird der Anweisungsblock in den geschweiften Klammern durchlaufen, dann wird die Programmausführung mit den Befehlen dahinter fortgesetzt. Ist die Bedingung falsch (log 0), setzt sich die Programmausführung gleich hinter dem Anweisungsblock fort.

Variante: Wenn der if - Anweisungsblock nur aus einer Anweisung besteht, können die Blockklammern {} entfallen.

if (bedingung) eine Anweisung;
if (bedingung) {mehrere Anweisungen;}

 

 

 

Siehe auch das Kapitel über logische Bedingungen

 

 

 

 

 

Beispiel if:

 

                          // Headerdatei der IDE, enthält die
                          // Deklarationen
#include <conio.h>        // für getch()
#include <stdio.h>        // für printf()

void main (void)          // Definition der Funktion main
{
 char c=0;                // Hilfsvariable

 start:                   // Ein Label (Sprungmarke im Programm)
 c=getch();               // Tastendruck holen und in c speichern
 if( c=='W') {            // wenn im Speicher c der ASCII-Code von
                          // 'W' steht,ist die Bedingung wahr
  printf("wahr c=W");     // .. dann diesen Text ausgeben
 }

 printf(" if Ende");      // wird bei wahr und falsch erreicht

 if (c=='E'||c=='e'){     // Diese Bedingung ist wahr, wenn in c
                          // der Code von 'E' ODER ein 'e' steht
  printf ("Programmende");
  return;                 // Programm wird beendet
 }
 goto start;              // noch eine Runde, bis zur Eingabe von
                          // 'E'oder 'e' 
}
 
 
 
 

 

 

 

if - else Befehl

Mit dem if() - else Befehl können sowohl der wahr (log1) -Auswertung wie auch der falsch (log0) -Auswertung Befehlszeilen zugeordnet werden.
Stösst die Programmausführung auf eine if - else - Abfrage wird die logische Bedingung in den runden Klammern des if - Teils auf ihren Wahrheitsgehalt geprüft.
Ist die Bedingung wahr (log 1), wird der if - Anweisungsblock durchlaufen, dann setzt sich die Programmausführung hinter dem else – Anweisungsblock fort.
Ist die logische Bedingung falsch (log 0), springt die Programmausführung zum else - Anweisungsblock, durchläuft ihn und setzt sich ebenfalls hinter dem else-Anweisungsblock fort.

Variante: Wenn der if - Programmblock oder der else- Programmblock nur aus einer Anweisung bestehen, können die Blockklammern {} entfallen.

if (bedingung) eine Anweisung;
else eine Anweisung;

if (bedingung) eine Anweisung;
else {mehrere Anweisungen};

 

 

 

 

 

Beispiel if-else:

 

                          // Headerdatei der IDE, enthält die
                          // Deklarationen
#include <conio.h>        // für getch()
#include <stdio.h>        // für printf()

void main (void)          // Definition der Funktion main
{
 char c=0;                // Hilfsvariable

 c=getch();               // Tastendruck holen und in c speichern

 if( c=='W') {            // wenn im Speicher c der ASCII-Code von
                          // 'W' steht,ist die Bedingung wahr
  printf("wahr c=W");     // .. dann diesen Text ausgeben
 }

 else {                   // andernfalls ist sie falsch
  printf("falsch c=%c",c);
 }

 printf("if-else Ende");  // wird bei wahr und falsch erreicht
}
 
 
 
 

 

 

 

if - elseif - else Befehl

Der if() - else if() - else Befehl ist eine Staffelung der if() - else Abfrage. Der else if() - Teil stellt für das vorhergehende if() den else–Teil dar und ist seinerseits wiederum eine if() - Abfrage mit Bedingung. Es kann auf diese zweite if() Abfrage wie zuvor nichts, ein else, oder ein erneutes else if() folgen ...

Variante: Wenn die if - elseif - else Programmblöcke nur aus einer Anweisung bestehen, können die Blockklammern {} entfallen.

if       (bedingung) eine Anweisung;
elseif (bedingung) {mehrere Anweisungen};
elseif (bedingung) eine Anweisung;
...
else eine Anweisung;

 

 

 

 

 

Beispiel if-elseif-else:

 

                          // Headerdatei der IDE, enthält die
                          // Deklarationen
#include <conio.h>        // für getch()
#include <stdio.h>        // für printf()

void main (void)          // Definition der Funktion main
{
 char c=0;                // Hilfsvariable

 c=getch();               // Tastendruck holen und in c speichern

 if( c=='A') {            // wahr, wenn c = ASCII-Code von 'A'
  printf("wahr c=A");
 }

 elseif(c=='B') {         // wahr, wenn c = ASCII-Code von 'B'
  printf("wahr c=B");
 }

 else {                      // andernfalls falsch
  printf("falsch c=%c",c);   // Inhalt C als Zeichen ausgeben
 }

 printf("if-elseif Ende");   // wird bei allen drei Teilen erreicht
}

 


 

 
 
 
 
Bemerkungen:
 
 
  • Folgt der if - elseif - oder else Abfrage nur eine Anweisung, können die Blockklammern '{' und '}' entfallen
 
 
  • In dem if - elseif - else Konstrukt ist nur eine if - Abfrage, beliebig viele elseif - Abfragen und höchstens eine else–Abfrage vorhanden.
 
 
  • if - Abfragen können aber geschachtelt werden. Das meint in den Anweisungsblöcken von if - elseif - else können wiederum if–elseif - else Abfragen vorkommen usw.
 
 
 
 
www..de