switch ... case in C Programming

In deze tutorial leer je om met behulp van een voorbeeld de switch-instructie te maken in C-programmering.

Met de switch-instructie kunnen we één codeblok uit vele alternatieven uitvoeren.

U kunt hetzelfde doen met de if… else… ifladder. De syntaxis van de switchinstructie is echter veel gemakkelijker te lezen en te schrijven.

Syntaxis van switch… case

 switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )

Hoe werkt de switch-instructie?

De uitdrukking wordt één keer geëvalueerd en vergeleken met de waarden van elk caselabel.

  • Als er een overeenkomst is, worden de overeenkomstige instructies na het overeenkomende label uitgevoerd. Als de waarde van de uitdrukking bijvoorbeeld gelijk is aan constante2, worden de instructies daarna case constant2:uitgevoerd totdat ze breakworden aangetroffen.
  • Als er geen overeenkomst is, worden de standaardinstructies uitgevoerd.

Als we niet gebruiken break, worden alle instructies na het overeenkomende label uitgevoerd.

Overigens is de defaultclausule in de switchinstructie optioneel.

switch Statement Flowchart

Voorbeeld: eenvoudige rekenmachine

 // Program to create a simple calculator #include int main() ( char operator; double n1, n2; printf("Enter an operator (+, -, *, /): "); scanf("%c", &operator); printf("Enter two operands: "); scanf("%lf %lf",&n1, &n2); switch(operator) ( case '+': printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2); break; case '-': printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2); break; case '*': printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2); break; case '/': printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2); break; // operator doesn't match any case constant +, -, *, / default: printf("Error! operator is not correct"); ) return 0; ) 

Uitvoer

 Voer een operator in (+, -, *,): - Voer twee operanden in: 32,5 12,4 32,5 - 12,4 = 20,1

De - operator ingevoerd door de gebruiker wordt opgeslagen in de operator variabele. En twee operanden 32.5 en 12.4 worden opgeslagen in respectievelijk variabelen n1 en n2.

Omdat de operator dat is -, springt de besturing van het programma naar

 printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);

Ten slotte beëindigt de break-instructie de switchinstructie.

Interessante artikelen...