C Canviar declaracions de cas

C Switch Case Statements



Una sentència de commutació (o simplement una sentència de cas) és un mecanisme de flux de control que determina l'execució d'un programa basat en el valor d'una variable o d'una expressió.

L’ús d’una instrucció switch us permet provar diverses condicions i executar només un bloc específic si la condició és certa. Tot i que funciona de manera similar a una sentència if ... else if ... .else, la sintaxi és més senzilla i fàcil de llegir i gestionar.







Aquest tutorial se centra a mostrar-vos com crear i treballar amb instruccions de commutació a la programació C.



Ús bàsic

La instrucció switch és fàcil d’implementar. La sintaxi general és la següent:



interruptor (expr) {
casevar1:
// codi
trencar;
casevar2:
// codi
trencar;
casevar3:
// codi
trencar;
casevarN:
// codi
trencar;
...
....
....
per defecte:
// codi
}

Com funciona

La sentència switch implementa una lògica senzilla per avaluar cadascun dels blocs de casos.





Comença avaluant l'expressió dins del bloc de commutació. A continuació, compara el valor del bloc de commutació amb el bloc de cada cas.

Un cop localitza una coincidència dins d’un dels blocs de majúscules definits, executa el codi dins d’aquest bloc fins que troba la paraula clau break.



Si no troba cap coincidència en cap dels blocs de majúscules definits, salta a la sentència per defecte i executa el codi que hi ha al seu interior. El bloc per defecte és opcional i ometible si no cal fer cap acció per a un escenari que no coincideixi

NOTA: És bo assegurar-se que cada sentència de cas finalitzi amb una sentència break per evitar que s'executin totes les sentències després del bloc coincident.

Exemple de declaració de cas de commutació C

Il·lustrem la sentència switch amb un exemple molt senzill:

#incloure

principal() {
inton= 5;
interruptor (on) {
cas3:
printf ('El valor és 3');
trencar;
cas4:
printf ('El valor és 4');
trencar;
cas5:
printf ('El valor és 5');
trencar;
per defecte:
printf ('El valor no és ni 3, 4 ni 5');
}
tornar0;
}

Si executem l'exemple anterior, hauríem d'obtenir una sortida similar a la següent:

El valor és5

El diagrama de flux següent il·lustra la lògica del programa anterior:

Una declaració de commutador imbricat

C us permet tenir instruccions de switch niades dins d'una instrucció de switch. L'instrucció de commutador imbricat es relaciona amb el valor de l'interruptor exterior.

Penseu en el següent exemple:

#incloure

principal() {
intdepartament= 5;
intaccess_code= 2028;
interruptor (departament) {
cas1:
interruptor (codi d'accés) {
cas2021:
printf ('[+] Codi d'accés vàlid!');
trencar;
per defecte:
printf ('[-] Codi d'Accés incorrecte!');
}
trencar;
per defecte:
printf ('[-] Només es permet el departament 1!');
}
tornar0;
}

A l'exemple anterior, implementem dues sentències de commutació. El primer comprova si el departament proporcionat és 1. Si és cert, passa al següent bloc de commutació i comprova el codi d’accés vàlid.

Si el valor de departament no és un, l'execució es mou al bloc per defecte.

A continuació s’executa el codi anterior amb un codi de sortida i accés correcte i incorrecte.

En el primer exemple, tant el codi de departament com el d’accés són correctes; per tant, l'execució mai no arriba als blocs predeterminats.

En el segon exemple, tant el codi de departament com el d’accés són incorrectes; per tant, l'execució salta immediatament al primer bloc per defecte.

Directrius per a les declaracions de commutació

A continuació s’indiquen directrius ràpides que cal destacar a l’hora de crear sentències de commutació a C.

  1. Heu de passar una expressió a la paraula clau commutadora.
  2. Les declaracions de casos han de comprovar si hi ha valors únics
  3. Acabeu cada bloc de majúscules i minúscules mitjançant la paraula clau break.
  4. Podeu anidar declaracions de commutador múltiples.
  5. Podeu incloure una sentència predeterminada quan calgui una acció per a casos que no coincideixin.

Conclusió

Aquesta guia us ha guiat pels conceptes bàsics de creació i ús d’instruccions de commutació C. Les instruccions de commutació són útils quan teniu casos de decisió complexos que poden ser difícils d’implementar amb la sentència i if else.