De schakelaarverklaring
Dit is een andere vorm van het multimanierbesluit. Het is goed gestructureerd, maar kan slechts in bepaalde gevallen worden gebruikt waar;
- Slechts één variabele wordt getest, moeten alle takken van de waarde van die variabele afhangen. De variabele moet een integraal type zijn (lang int., plotseling of klusje).
- Elke mogelijke waarde van de variabele kan één enkele tak controleren. Def., vangt allen, in gebreke blijft tak kan naar keuze worden gebruikt om alle niet gespecificeerde gevallen op te sluiten.
Hieronder gegeven het voorbeeld zal dingen verduidelijken. Dit is een functie die een geheel in een vage beschrijving omzet. Het is nuttig waar wij in het meten van een hoeveelheid slechts betrokken zijn wanneer het vrij klein is.
estimate(number)
int number;
/* Schat een aantal als niets, één, twee, verscheidene, velen */
{ switch(number) {
case 0 :
printf("None\n");
break;
case 1 :
printf("One\n");
break;
case 2 :
printf("Two\n");
break;
case 3 :
case 4 :
case 5 :
printf("Several\n");
break;
default :
printf("Many\n");
break;
}
}
Elk interessant geval is vermeld met een overeenkomstige actie. De onderbrekingsverklaring verhindert om het even welke verdere verklaringen worden uitgevoerd door de schakelaar te verlaten. Aangezien geval 3 en geval 4 geen volgende onderbreking hebben, gaan zij bij het toestaan van de zelfde actie voor verscheidene waarden van aantal verder.
Allebei als en de schakelaarconcepten de programmeur toestaan om een selectie uit een aantal mogelijke acties te maken. Zie een voorbeeld:
#include <stdio.h>
int main()
{
int num;
for (num = 3 ; num < 13 ; num = num + 1)
{
switch (num)
{
case 3 :
printf("The value is three\n");
break;
case 4 :
printf("The value is four\n");
break;
case 5 :
case 6 :
case 7 :
case 8 :
printf("The value is between 5 and 8\n");
break;
case 11 :
printf("The value is eleven\n");
break;
default :
printf("It is one of the undefined values\n");
break;
} /* end of switch */
} /* end of for loop */
return 0;
}
De output van het programma zal zijn
The value is three
The value is four
The value is between 5 and 8
The value is between 5 and 8
The value is between 5 and 8
The value is between 5 and 8
It is one of the undefined values
It is one of the undefined values
The value is eleven
It is one of the undefined values |
|