Die Switch Anweisung
  1. switch
Ebenso wie die if Konstruktion mit else if Anweisungen dient die switch Anweisung zur Formulierung von Mehrwegeentscheidungen in C Programmen. Die allgemeine Form der switch Anweisung lautet:
 

            switch(ausdruck) {

                case konst_1: anweisung_1

                case konst_2: anweisung_2

                ....

                case konst_n: anweisung_n

                default: anweisung

            }
Dabei ist ausdruck vom Datentyp int oder char und konst_1, konst_2, ..., konst_n sind Integer-Konstanten oder Character-Konstanten. Stimmt der Wert von ausdruck mit einer der case Konstanten konst_1, konst_2,...,konst_n überein, wird die entsprechende hinter dem Doppelpunkt stehende Anweisungsfolge ausgeführt. Auf diese Weise lässt sich erreichen, dass nur die Anweisungen eines Falls abgearbeitet werden. Stimmt der Wert von ausdruck mit keiner case Konstanten überein, so werden die Anweisungen hinter der Marke default ausgeführt.

Switch Anweisungen sind geradlinig und gut überschaubar.

  1. case:
"case" ist der Punkt im Programm wo es bei Dateneingabe hinspringt in diesem Programm 1-6.
  1. break:
Ohne die break-Anweisung würden wie alle Werte auf dem Bildschirm sehn, egal was man tippt.
  1. default:
Das default erlaubt es eine Anweisung zu kennzeichnen, bei der die Ausführung fortgesetzt werden soll, wenn keiner der angegebenen Werte mit dem Wert des Ausdrucks übereinstimmt. Es darf nur maximal eine default-Marke verwendet werden. Das Wort "default" ist (wie auch das Wort "case") kein Bezeichner, sondern ein Schlüsselwort.
  1. Nachteil:
Wie schon oben geschrieben, ist die switch-Anweisung so was wie eine else-if Anweisung. Bei switch haben wir den nachteil, dass es keine Bedingungsprüfung machen sondern, ein direkter Wertevergleicht gemacht wird, was den Anwendungsbereich der switch-Anweisung etwas einschränkt!
  1. Fehler:
Alle case Konstanten müssen voneinander verschieden sein; andernfalls kommt es beim Übersetzten zu einem Syntaxfehler: duplicate case in switch.
QUELLDATEI
#include 
#include 

using namespace std;

int main(int argc, char *argv[])
{
{
int m, main;

float durchmesser;
char auswahl;
auswahl = 'j';
const float PI=3.14;
while(auswahl=='j')
{system("CLS");
cout << "Bitte geben Sie Durchmesser= ";
cin >> durchmesser;
cout << "1= Umfang, 2=Flaeche, 3=Ende -->"; // das Menue!!!

cin >> m; // liest die zahl vom Menue
switch (m) // Klammer Ausdruck ist beliebig, muss aber gleichen
// gleichen Datentyp wie die "case" Konstante haben
{
case 1: // Menue 1
{float umfang=durchmesser*PI; // berechnung umfang
cout <<"Der Umfang betraegt: "< system("PAUSE"); // macht das Fenster nicht sofort zu break;
case 2: // Menue 2
{float flaeche=pow(durchmesser,2)*PI/4; // berechnung Fläche
cout <<"Die Flaeche betraegt: "< system("PAUSE"); // macht das Fenster nicht sofort zu
break;

case 3: // Menue 3
cout <<"Moechen Sie Programm Wiederholen? j/n";
cin >>auswahl;
break;
default: // Wenn eine zahl die nicht def. ist so spring es hier hin
cout <<" Diese Auswahl gibt es nicht!!";
}
cout << endl; }
}
system("PAUSE"); // macht das Fenster nicht sofort zu
return 0;

}

// tipping by S.Gözen