La instrucció Switch case avalua una expressió determinada i, en funció del valor avaluat (que coincideix amb una determinada condició), executa les declaracions associades a ella. Bàsicament, s'utilitza per realitzar diferents accions basades en diferents condicions (casos).
- Les declaracions de canvi de cas segueixen un mecanisme de control de selecció i permeten que un valor canviï el control de l'execució.
- Són un substitut durant molt de temps si declaracions que comparen una variable amb diversos valors integrals.
- La instrucció switch és una instrucció de branca multidireccional. Proporciona una manera senzilla d'enviar l'execució a diferents parts del codi en funció del valor de l'expressió.
En C, la instrucció switch case s'utilitza per executar una condició a partir de diverses condicions. És semblant a una escala si-else-if.
fer mentre estàs en java
La instrucció switch consta de casos basats en condicionals i un cas predeterminat.
Sintaxi de la sentència switch en C
switch(expression) { case value1 : statement_1; break; case value2 : statement_2; break; . . . case value_n : statement_n; break; default: default_statement; }>
Com utilitzar la declaració de canvi de cas a C?
Abans d'utilitzar el cas switch al nostre programa, hem de conèixer algunes regles de la instrucció switch.
Regles de la declaració de canvi de cas
A continuació es mostren algunes de les regles que hem de seguir mentre fem servir la instrucció switch:
- En una declaració de commutació, el valor de cas ha de ser de char i int tipus.
- Hi pot haver un o N nombre de casos.
- Els valors del cas han de ser únic .
- Cada enunciat del cas pot tenir una declaració break. És opcional.
- La declaració predeterminada també és opcional.
Exemple
C // C program to Demonstrate returning of day based numeric // value #include int main() { // switch variable int var = 1; // switch statement switch (var) { case 1: printf('Case 1 is Matched.'); break; case 2: printf('Case 2 is Matched.'); break; case 3: printf('Case 3 is Matched.'); break; default: printf('Default case is Matched.'); break; } return 0; }>
Sortida
Case 1 is Matched.>
Com funciona la declaració de canvi?
El funcionament de la instrucció switch en C és el següent:
- Pas 1: S'avalua la variable switch.
- Pas 2: El valor avaluat es compara amb tots els casos actuals.
- Pas 3A: Si es troba el valor de majúscules i minúscules que coincideix, s'executa el codi associat.
- Pas 3B: Si no es troba el codi coincident, s'executa el cas predeterminat si està present.
- Pas 4A: Si la paraula clau break està present en el cas, aleshores el control del programa surt de la instrucció switch.
- Pas 4B: Si la paraula clau break no està present, s'executen tots els casos posteriors al cas coincident.
- Pas 5: S'executen les declaracions després de la instrucció switch.
També podem entendre el funcionament de la declaració switch en C mitjançant el diagrama de flux.
Diagrama de flux de la declaració Switch

Diagrama de flux de la declaració de commutació en C
Trenca la caixa de l'interruptor
Aquesta paraula clau s'utilitza per aturar l'execució dins d'un bloc de commutació. Ajuda a finalitzar el bloc de commutació i sortir-ne. Quan s'arriba a una instrucció break, l'interruptor s'acaba i el flux de control salta a la línia següent després de la instrucció switch.
El La declaració break és opcional . Si s'omet, l'execució continuarà en el cas següent. El flux de control anirà passant als casos posteriors fins que s'arribi a una interrupció.
Exemple de caixa d'interruptor sense interrupció
C // C Program to demonstrate the behaviour of switch case // without break #include int main() { int var = 2; // switch case without break switch (var) { case 1: printf('Case 1 is executed.
'); case 2: printf('Case 2 is executed.
'); case 3: printf('Case 3 is executed.'); case 4: printf('Case 4 is executed.'); } return 0; }>
Sortida
Case 2 is executed. Case 3 is executed.Case 4 is executed.>
Per defecte en el cas de l'interruptor
La paraula clau predeterminada s'utilitza per especificar el conjunt de sentències per executar si no hi ha coincidència entre majúscules i minúscules .
És opcional per utilitzar la paraula clau predeterminada en un cas de canvi. Fins i tot si la instrucció switch case no té una instrucció predeterminada, s'executarà sense cap problema.
Aspectes importants sobre les declaracions de cas de canvi
1. L'expressió de canvi hauria de donar lloc a a valor constant
Si l'expressió proporcionada a la instrucció switch no dóna com a resultat un valor constant, no seria vàlida. Algunes expressions vàlides per canviar majúscules i minúscules seran,
conjunt c++
// Constant expressions allowed switch(1+2+23) switch(1*2+3%4) // Variable expression are allowed provided // they are assigned with fixed values switch(a*b+c*d) switch(a+b+c)>
2. El valor d'expressió només hauria de ser de tipus int o char.
La sentència switch només pot avaluar el valor enter o caràcter. Per tant, l'expressió switch hauria de retornar només els valors de tipus int o char.
3. Els valors de cas han de ser únics
A la instrucció C switch, no es permeten els valors de minúscules duplicats.
3. Nidificació de declaracions switch
Es permet la nidificació de declaracions switch , el que significa que podeu tenir declaracions switch dins d'un altre switch. Tanmateix, s'han d'evitar les declaracions switch imbricades, ja que fan que el programa sigui més complex i menys llegible.
4. El bloc per defecte es pot col·locar a qualsevol lloc
Independentment de la seva ubicació, el cas per defecte només s'executa si no es compleix cap de les altres condicions del cas. Per tant, posar-lo al principi, al mig o al final no canvia la lògica bàsica.
Exemples de declaració switch a C
Exemple 1: C Programa per imprimir el dia de la setmana amb una caixa de canvi.
C // C program to print the day using switch #include // Driver Code int main() { int day = 2; printf('The day with number %d is ', day); switch (day) { case 1: printf('Monday'); break; case 2: printf('Tuesday'); break; case 3: printf('Wednesday'); break; case 4: printf('Thursday'); break; case 5: printf('Friday'); break; case 6: printf('Saturday'); break; case 7: printf('Sunday'); break; default: printf('Invalid Input'); break; } return 0; }>
Sortida
The day with number 2 is Tuesday>
Exemple 2: calculadora simple que utilitza majúscules i minúscules en C
C // C Program to create a simple calculator using switch // statement #include #include // driver code int main() { // switch variable char choice; // operands int x, y; while (1) { printf('Enter the Operator (+,-,*,/)
Enter x to ' 'exit
'); scanf(' %c', &choice); // for exit if (choice == 'x') { exit(0); } printf('Enter the two numbers: '); scanf('%d %d', &x, &y); // switch case with operation for each operator switch (choice) { case '+': printf('%d + %d = %d
', x, y, x + y); break; case '-': printf('%d - %d = %d
', x, y, x - y); break; case '*': printf('%d * %d = %d
', x, y, x * y); break; case '/': printf('%d / %d = %d
', x, y, x / y); break; default: printf('Invalid Operator Input
'); } } return 0; }>
Sortida
Enter the operator (+, -, *, /) Enter x to exit + Enter the two numbers: 100 + 200 100 + 200 = 300>
Avantatges de la declaració de commutació C
- Més fàcil de llegir que si una altra cosa si.
- Més fàcil de depurar i mantenir per a un gran nombre de condicions.
- Velocitat d'execució més ràpida.
Desavantatges de la declaració de commutació C
- Canvia entre majúscules i minúscules només pot avaluar el tipus int o char.
- No hi ha suport per a expressions lògiques.
- Cal tenir en compte afegir un descans en cada cas.
Conclusió
En aquest article, hem parlat de la declaració switch a la programació C i com utilitzar-la. És una declaració condicional com l'escala if-else-if que té els seus propis mèrits i demèrits. Es prefereix sobretot quan el nombre de condicions a avaluar és gran.
Preguntes freqüents sobre la declaració de l'interruptor C
1. Quin és el cas de l'interruptor en C?
La declaració switch case és una instrucció de control de flux en la qual podem definir una variable switch i després executar codi diferent en funció del valor de la variable switch. És una alternativa de if else if escala.
2. Quin és el cas de la sentència switch en C?
La paraula clau case s'utilitza per definir els diferents casos i el codi associat a la instrucció switch.
3. Què fa el trencament de la caixa de l'interruptor?
La paraula clau break s'utilitza per sortir del bloc de commutació després d'executar el cas coincident.
nombres a l'alfabet
4. Quines diferències hi ha entre l'interruptor i si més si l'escala en C?
Els següents són els principals diferències entre l'interruptor C i el C si més si és escala :
interruptor | si més si |
---|---|
Executa els diferents casos en funció del valor de la variable switch. | Executa els diferents blocs en funció de la condició especificada. |
Només pot avaluar les expressions de tipus int o char. | Pot avaluar qualsevol tipus d'expressió. |
Més ràpid i fàcil de llegir per la gran quantitat de condicions. | Es pot desordenar quan hi ha moltes condicions. |
Cal llegir:
- Fets interessants sobre Switch Case a C
- Imprimeix els dígits individuals com a paraules sense utilitzar if o Switch