istruzione switch (C)
switch e evento le istruzioni consentono di controllare le operazioni condizionali e creazione di rami complesse.switch trasferisce il controllo dell'istruzione a un'istruzione all'interno del corpo.
Sintassi
selezione-rendiconto:
(opzioneespressione**)**istruzionecontrassegnare-rendiconto:
evento espressione costante : istruzioneimpostazione predefinita: istruzione
Il controllo passa all'istruzione di cui evento espressione costante corrisponde al valore di (opzione espressione ).switch l'istruzione può includere qualsiasi numero evento istanze, ma non costanti di due casiinterno dello stesso switch l'istruzione può avere lo stesso valore.Esecuzione del corpo dell'istruzione inizia all'istruzione selezionata e continua fino alla fine del corpo o fino a interruzione trasferisce il controllo dell'istruzione dal corpo.
Utilizzo di switch l'istruzione in genere è simile alla seguente:
switch ( espressione )
{
dichiarazioni
.
.
.
evento espressione costante :
istruzioni eseguito se l'espressione corrisponde
valore dell'espressione costante
.
.
.
interruzione;
impostazione predefinita:
istruzioni eseguito se l'espressione non è uguale a
qualsiasi rivestono l'espressione costante
}
È possibile utilizzare interruzione istruzione da terminare l'elaborazione di un caso particolare all'interno di switch istruzione e creare un ramo alla fine di l switch istruzione.senza interruzione, il programma continua al caso di seguito, eseguendo le istruzioni fino a interruzione o la fine dell'istruzione viene soddisfatta.In alcune situazioni, la continuazione può essere appropriato.
impostazione predefinita l'istruzione viene eseguito se nessun evento espressione costante corrisponde al valore di (opzione espressione ).se impostazione predefinita l'istruzione viene omesso e no evento la corrispondenza trovata, nessuna delle istruzioni in switch il corpo viene eseguito.Potrebbe contenere al massimo uno impostazione predefinita istruzione.impostazione predefinita l'istruzione non necessita di e alla fine; può apparire in un punto qualsiasi del corpo di switch istruzione.In evento o impostazione predefinita l'etichetta può apparire solo in un oggetto switch istruzione.
il tipo di switch espressione e evento espressione costante deve essere integrale.Il valore di ogni evento espressione costante deve essere univoco all'interno del corpo dell'istruzione.
evento e impostazione predefinita etichette di switch il corpo dell'istruzione è significativo solo nel test iniziale che determina il punto in cui inizia l'esecuzione nel corpo dell'istruzione.le istruzioni switch possono essere annidate.Tutte le variabili statiche inizializzate prima di eseguire in qualsiasi switch istruzioni.
[!NOTA]
Le dichiarazioni possono essere visualizzati all'intestazione della formazione di un'istruzione composta switch il corpo, ma le inizializzazioni incluse nelle dichiarazioni non viene eseguito.switch trasferisce il controllo dell'istruzione direttamente a un'istruzione eseguibile all'interno del corpo, ignorando le righe che contengono le inizializzazioni.
Negli esempi seguenti vengono illustrati switch istruzioni:
switch( c )
{
case 'A':
capa++;
case 'a':
lettera++;
default :
total++;
}
Tutte e tre le istruzioni di switch il corpo in questo esempio viene eseguito se c è uguale a 'A' da a interruzione l'istruzione non appare prima dell'evento.Il controllo di esecuzione viene trasferito alla prima istruzione (capa++;) e procede in sequenza con il resto del corpo.se c è uguale a 'a', lettera e total vengono incrementati.Solo total viene incrementato se c non è uguale a 'A' o 'a'.
switch( i )
{
case -1:
n++;
break;
case 0 :
z++;
break;
case 1 :
p++;
break;
}
in questo esempio, a interruzione l'istruzione seguente ogni istruzione di switch corpo.interruzione l'istruzione impone un'uscita dal corpo dell'istruzione dopo istruzione viene eseguito.se i è uguale - 1, solo n viene incrementato.interruzione dopo l'istruzione n++; controllo dell'esecuzione di cause da passare dal corpo dell'istruzione, ignorando le istruzioni rimanenti.Analogamente, se i è uguale a 0, solo z viene incrementato, se i è uguale a 1, solo p viene incrementato.il finale interruzione l'istruzione non è strettamente necessario, poiché il controllo passa dal corpo alla fine di un'istruzione composta, ma è incluso per coerenza.
Una singola istruzione può contenere più DSP evento etichette, come illustrato nel seguente esempio:
case 'a' :
case 'b' :
case 'c' :
case 'd' :
case 'e' :
case 'f' : hexcvt(c);
In questo esempio, si espressione costante equivale a tutte le lettere tra 'a' e 'f', hexcvt viene chiamata la funzione.
Specifici di Microsoft
Microsoft C non limita il numero di valori di case in switch istruzione.Il numero è limitato solo dalla memoria disponibile.In ANSI di C# richiede almeno 257 etichette case è consentito in a switch istruzione.
L'impostazione predefinita per Microsoft C# è che le estensioni Microsoft sono abilitate.Utilizzare l'opzione del compilatore /Za per disabilitare le estensioni.
Microsoft FINALE specifico