Freigeben über


switch-Anweisung (C)

switch und die Fall-Anweisungen unterstützen dem Steuerkomplex, der bedingt Vorgänge und verzweigt worden wären.Das switch - übergibt die Steuerung an eine Anweisung innerhalb seines Texts.

Syntax

  • AuswahlAnweisung:
    (SchalterAusdrucks)-Anweisung

  • BeschrifteteAnweisung:
    : Anweisung Fall konstanten Ausdrucks

    Standard: Anweisung

Steuerelements an die Anweisung übergeben, deren Fall konstanter Ausdruck den Wert (Schalter *Ausdruck ***)**übereinstimmt.Die switch-Anweisung kann eine beliebige Anzahl Fall-Instanzen enthalten, aber keine Konstanten mit zwei Fällen innerhalb derselben switch-Anweisung können denselben Wert haben.Die Ausführung des Anweisungstexts beginnt mit der select-Anweisung und wird bis zum Ende des Texts oder bis ein break-Anweisungs-Übergangs die Steuerung aus dem Text aus.

Verwendung der switch-Anweisung in der Regel sieht etwa folgendermaßen:

switch ( Ausdruck )

{

   Deklarationen 

   .

   .

   .

   Fallkonstanter Ausdruck**:** 

      Anweisungen ausgeführt, wenn der Ausdruck entspricht 

      Wert des konstanten Ausdrucks 

      .

      .

      .

      Unterbrechen; 

   Standard:

      Anweisungen ausgeführt, wenn Ausdruck entspricht 

      jeden Fall konstanter Ausdruck 

}

Sie können die break-Anweisung verwendet werden, um das Verarbeiten eines speziellen Fall innerhalb der switch-Anweisung beendet und am Ende der switch-Anweisung zu verzweigen.Ohne breakwird das Programm in den folgenden Fällen fort und führt die Anweisungen aus, oder break bis zum Ende der Anweisung erreicht wird.In manchen Situationen kann die Fortsetzung wünschenswert.

Die Standardwert-Anweisung wird ausgeführt, wenn kein Fall konstanter Ausdruck gleich dem Wert von (Schalter *Ausdruck ***)**ist.Wenn die Standardwert-Anweisung ausgelassen wird und keine Fall Übereinstimmung gefunden wurde, wird keine der Anweisungen im Text switch ausgeführt.Es kann höchstens eine Standardwert-Anweisung sein.Die Standardwert-Anweisung muss nicht am Schluss gekommen. Sie kann eine beliebige Stelle im Text der switch-Anweisung angegeben werden.Eine Fall oder Standardwert Bezeichnung kann innerhalb einer switch-Anweisung nur angezeigt werden.

Der Typ der switch Ausdruck undkonstantemFall Ausdruck muss eine ganze Zahl sein.Der Wert jedes Fall konstanten Ausdrucks muss innerhalb des Anweisungstexts eindeutig sein.

Die Fall und Standardwertswitch Bezeichnungen des Anweisungstexts sind nur im ursprünglichen Test signifikant, der bestimmt, wo die Ausführung im Anweisungstext beginnt.Switch-Anweisungen können geschachtelt werden.Alle statischen Variablen initialisiert werden, bevor sie in einer switch-Anweisungen ausführt.

HinweisHinweis

Deklarationen können am Anfang der switch Verbundanweisung werden, die den Text darstellt, aber die Initialisierungen, die in die Deklarationen enthalten sind, werden nicht ausgeführt.Das switch - übergibt die Steuerung direkt einer ausführbaren Anweisung innerhalb des Texts, der umgehend Zeilen, die Initialisierungen enthalten.

In den folgenden Beispielen werden switch-Anweisungen:

switch( c ) 
{
    case 'A':
        capa++;
    case 'a':
        lettera++;
    default :
        total++;
}

Alle drei Anweisungen des switch Texts in diesem Beispiel werden ausgeführt, wenn c gleich 'A' ist, da eine break-Anweisung nicht vor dem nächsten Fall wird.Execution Control wird zur ersten Anweisung (capa++;) übertragen und Fortfahren in der Reihenfolge vom Rest des Texts.Wenn c gleich 'a'ist, werden lettera und total erhöht.Nur total wird erhöht, wenn c ungleich 'A' oder 'a'ist.

switch( i ) 
{
    case -1:
        n++;
        break;
    case 0 :
        z++;
        break;
    case 1 :
        p++;
        break;
}

In diesem Beispiel folgt eine Break-Anweisung jeder Anweisung des switch Texts.Die break-Anweisung erzwingt eine Beendigung des Anweisungstext, nachdem eine Anweisung ausgeführt wurde.Wenn i gleich ist 1 und n nur inkrementiert wird.break , das die Anweisung folgt, wird n++; Sie unter Execution Control aus dem Anweisungstext zu übergeben und umgeht die verbleibenden Anweisungen.Auch wenn i gleich 0 ist, werden nur z inkrementiert wird. Wenn i gleich 1 ist, werden nur p inkrementiert wird.Die endgültige break-Anweisung ist nicht zwingend erforderlich, da ein Steuerelement aus dem Text am Ende der Verbundanweisung, jedoch wird aus Gründen der Einheitlichkeit enthalten.

Eine einzelne Anweisung kann mehrere Fall Bezeichnungen gelten, wie im folgenden Beispiel dargestellt:

case 'a' :
case 'b' :
case 'c' :
case 'd' :
case 'e' :
case 'f' :  hexcvt(c);

In diesem Beispiel wird ein konstanter Ausdruck wenn 'a' zwischen Buchstaben und 'f'ist, wird die hexcvt-Funktion aufgerufen.

Microsoft-spezifisch

Microsoft C# wird nicht die Anzahl der Fall werten in einer switch-Anweisung ein.Die Zahl wird nur durch den verfügbaren Speicher beschränkt.ANSI C erfordert mindestens 257 Fall von Bezeichnungen in einer zugelassen wird switch-Anweisung.

Der Standardwert für Microsoft C# besteht darin, dass die Microsoft-Erweiterungen aktiviert sind.Verwenden Sie die /Za-, um diese Erweiterungen zu deaktivieren.

Microsoft ENDES bestimmten

Siehe auch

Referenz

switch-Anweisung (C++)