C Dichiarazioni sui casi di commutazione

C Switch Case Statements



Un'istruzione switch, o semplicemente un'istruzione case, è un meccanismo di flusso di controllo che determina l'esecuzione di un programma in base al valore di una variabile o di un'espressione.

L'utilizzo di un'istruzione switch consente di testare più condizioni ed eseguire un blocco specifico solo se la condizione è vera. Sebbene funzioni in modo simile a un'istruzione if...else if...else, la sintassi è più semplice e facile da leggere e gestire.







Questo tutorial si concentra sulla mostra come creare e lavorare con le istruzioni switch nella programmazione C.



Utilizzo di base

L'istruzione switch è facile da implementare. La sintassi generale è come mostrato di seguito:



interruttore (espr) {
casevar1:
// codice
rottura;
casovar2:
//codice
rottura;
casevar3:
// codice
rottura;
casevarN:
// codice
rottura;
...
….
….
predefinito:
//codice
}

Come funziona

L'istruzione switch implementa una semplice logica per valutare ciascuno dei blocchi case.





Inizia valutando l'espressione all'interno del blocco switch. Quindi, confronta il valore del blocco switch con ciascun blocco case.

Una volta individuata una corrispondenza all'interno di uno dei blocchi case definiti, esegue il codice all'interno di quel blocco finché non incontra la parola chiave break.



Se non incontra una corrispondenza in nessuno dei blocchi case definiti, passa all'istruzione predefinita ed esegue il codice al suo interno. Il blocco predefinito è facoltativo e può essere omesso se non è richiesta alcuna azione per uno scenario non corrispondente

NOTA: È bene assicurarsi che ogni istruzione case termini con un'istruzione break per impedire l'esecuzione di tutte le istruzioni dopo il blocco corrispondente.

C Switch Case Esempio di dichiarazione

Illustriamo l'istruzione switch con un esempio molto semplice:

#includere

intmain() {
intdove= 5;
interruttore (dove) {
caso3:
printf ('Il valore è 3');
rottura;
caso4:
printf ('Il valore è 4');
rottura;
caso5:
printf ('Il valore è 5');
rottura;
predefinito:
printf ('Il valore non è né 3, 4 né 5');
}
ritorno0;
}

Se eseguiamo l'esempio precedente, dovremmo ottenere un output simile a quello seguente:

Il valore è5

Il seguente diagramma di flusso illustra la logica del programma precedente:

Una dichiarazione di commutazione annidata

C consente di avere istruzioni switch nidificate all'interno di un'istruzione switch. L'istruzione switch annidata si lega al valore dello switch esterno.

Considera il seguente esempio:

#includere

intmain() {
intDipartimento= 5;
intaccess_code= 2028;
interruttore (Dipartimento) {
caso 1:
interruttore (codice d'accesso) {
caso2021:
printf ('[+] Codice di accesso valido!');
rottura;
predefinito:
printf ('[-] Codice d'accesso invalido!');
}
rottura;
predefinito:
printf ('[-] È consentito solo il Dipartimento 1!');
}
ritorno0;
}

Nell'esempio sopra, implementiamo due istruzioni switch. Il primo verifica se il dept fornito è 1. Se true, passa al blocco switch successivo e verifica il codice di accesso valido.

Se il valore dept non è uno, l'esecuzione passa al blocco predefinito.

Quella che segue è l'esecuzione del codice di cui sopra con codice di reparto e di accesso corretto e non corretto.

Nel primo esempio sono corretti sia il reparto che il codice di accesso; quindi, l'esecuzione non raggiunge mai i blocchi predefiniti.

Nel secondo esempio, sia il reparto che il codice di accesso sono errati; quindi, l'esecuzione salta immediatamente al primo blocco predefinito.

Linee guida per le dichiarazioni di cambio

Di seguito sono riportate linee guida rapide da tenere in considerazione durante la creazione di istruzioni switch in C.

  1. Devi passare un'espressione alla parola chiave switch.
  2. Le dichiarazioni dei casi devono verificare i valori univoci
  3. Termina ogni blocco case utilizzando la parola chiave break.
  4. È possibile nidificare più istruzioni switch.
  5. È possibile includere un'istruzione predefinita quando è necessaria un'azione per i casi non corrispondenti.

Conclusione

Questa guida ti ha guidato attraverso le basi della creazione e dell'utilizzo delle istruzioni switch C. Le istruzioni Switch sono utili quando si hanno casi decisionali complessi che potrebbero essere difficili da implementare con l'istruzione e if else.