Die switch Anweisung beschreibt eine Mehrfachauswahl. Ein Ausdruck wird einmal ausgewertet und mit Konstanten verglichen. Bei Gleichheit werden die Anweisungen, die nach der Konstante stehen, abgearbeitet. In switch Anweisungen kann man nur ordinale Datentypen (d.h. int, long int, char, etc.) verwenden.
switch( Ausdruck )
{
case constant-Ausdruck1: Anweisungs1;
[case constant-Ausdruck2: Anweisungs2;]
[case constant-Ausdruck3: Anweisungs3;]
[default : Anweisung_X]
}
|
Sehen Sie sich das folgende Programmbeispiel an
switch( Grade )
{
case 'A' : printf( "Excellent" );
case 'B' : printf( "Good" );
case 'C' : printf( "OK" );
case 'D' : printf( "Mmmmm-.." );
case 'F' : printf( "You must do better than this" );
default : printf( "What is your grade anyway?" );
}
|
Wenn 'Grade' den Wert 'A' enthält, ergibt sich als Ausgabe,
Excellent
Good
Mmmmm-..
You must do better than this
What is your grade anyway?
|
d.h. eine switch Anweisung wird beginnend vom Eintrittspunkt bis zum Ende abgearbeitet. Mit dem Schlüsselwort break kann man ein vorzeitiges Ende festlegen. Das Programmbeispiel müßte man wie folgt verändern
switch( Grade )
{
case 'A' : printf( "Excellent"
break;
case 'B' : printf( "Good" );
break;
case 'C' : printf( "OK" );
break;
case 'D' : printf( "Mmmmm...." );
break;
case 'F' : printf( "You must do better than this"; );
break;
default : printf( "What is your grade anyway?" );
}
|