У овом упутству научићете да креирате наредбу свитцх у програмирању на Ц помоћу примера.
Изјава свитцх омогућава нам да извршимо један блок кода међу многим алтернативама.
То исто можете учинити и са if… else… if
мердевинама. Међутим, синтаксу switch
исказа је много лакше читати и писати.
Синтакса преклопника … случај
switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )
Како функционише наредба свитцх?
Израз се процењује једном и упоређује са вредностима сваке ознаке случаја.
- Ако постоји подударање, извршавају се одговарајући изрази након одговарајуће ознаке. На пример, ако је вредност израза једнака константи2, изрази након
case constant2:
се извршавају докbreak
се не наиђе. - Ако нема подударања, извршавају се задани изрази.
Ако не користимо break
, извршавају се сви изрази након одговарајуће ознаке.
Иначе, default
клаузула унутар switch
изјаве није обавезна.
дијаграм тока прекидача изјаве
Пример: Једноставан калкулатор
// 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; )
Оутпут
Унесите оператор (+, -, *,): - Унесите два операнда: 32,5 12,4 32,5 - 12,4 = 20,1
Оператор који је корисник унео чува се у променљиви оператора. Два операнда 32.5 и 12.4 се чувају у променљивим н1 и н2 респективно.
Пошто је оператор -
, контрола програма прелази на
принтф ("%. 1лф -% .1лф =% .1лф", н1, н2, н1-н2);
На крају, изјава бреак прекида switch
изјаву.