Come creare un'istruzione switch in C

February 12

Utilizzare l'istruzione Switch in C per valutare un gran numero di valori per una singola variabile o espressione. Switch può essere molto più ordinata di una lunga serie di istruzioni If Else.

istruzione

Creare un'istruzione switch

1 Scegliere il valore che determinerà l'azione nella sua dichiarazione switch. Può essere una singola variabile, il risultato di una chiamata di funzione o di qualsiasi espressione.

2 Inserire questo valore o un'espressione dopo l'istruzione switch in questo modo:

interruttore (variabile) {

3 Fate una lista di tutti i valori che si desidera catturare. Si noti che è possibile per più valori di avere la stessa azione, ma non è possibile utilizzare gli intervalli, solo elenchi di valori. Ad esempio, non si può avere un caso per i valori 301-400, a meno che non si desidera elencare tutti i 100 valori uno per uno!

4 So che è molto comune per i valori da costanti definite con l'istruzione # define C precompilatore.

5 Aggiungere un'istruzione case per ogni valore nel seguente formato:

Valore caso:

6 Seguire ogni dichiarazione caso con una o più azioni. Diversamente dalla maggior parte strutture C, non è necessario parentesi graffe per più istruzioni.

7 Concludere ogni set di comandi con un'istruzione break prima di iniziare il prossimo caso. Se non si esegue questa operazione, l'esecuzione sarà "cadere attraverso" in caso successivo, che è praticamente mai desiderabile. E 'OK per lasciare fuori la pausa se qualcosa (come una dichiarazione di ritorno) assicura che non sarà mai "cadere."

8 Creare un caso speciale di default per la cattura di tutto quanto non accompagnata da un caso precedente. E 'solo di default, non è caso di default.

9 Concludere il blocco con un}, come in questo esempio completo:

Interruttore (evaluate_color (rosso, verde, blu)) {
caso RED:
printf ( "Un tramonto brillante rosso riempie il cielo. \ n");
x = 11;
rompere;
caso GIALLO:
printf ( "Il sole picchia senza pietà. \ n");
x = 14;
rompere;
caso GREEN:
x = 10;
evaluate_green ();
rompere;
caso BLU:
printf ( "Congratulazioni, hai vinto! \ n");
ritorno;
predefinito:
printf ( "Niente di speciale accade. \ n");
rompere;
}

Consigli e avvertenze

  • Interruttore funziona solo se tutti i confronti sono contro una singola variabile o espressione. In caso contrario, creare un'istruzione Else Se con più Else Ifs.
  • Uso di "cadere attraverso" è generalmente considerato una cattiva tecnica e dovrebbe essere evitato a meno che non si è assolutamente certi che il codice sarà sia corretta e leggibile.