W tym samouczku nauczysz się tworzyć instrukcję switch w programowaniu w C na przykładzie.
Instrukcja switch umożliwia nam wykonanie jednego bloku kodu spośród wielu alternatyw.
To samo możesz zrobić z if… else… if
drabiną. Jednak składnia switch
instrukcji jest znacznie łatwiejsza do odczytania i napisania.
Składnia przełącznika… przypadek
switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )
Jak działa instrukcja switch?
Wyrażenie jest oceniane raz i porównywane z wartościami każdej etykiety przypadku.
- W przypadku dopasowania wykonywane są odpowiednie instrukcje po pasującej etykiecie. Na przykład, jeśli wartość wyrażenia jest równa stałej2, instrukcje po
case constant2:
są wykonywane aż dobreak
napotkania. - Jeśli nie ma dopasowania, wykonywane są instrukcje domyślne.
Jeśli nie używamy break
, wszystkie instrukcje po pasującej etykiecie są wykonywane.
Nawiasem mówiąc, default
klauzula wewnątrz switch
instrukcji jest opcjonalna.
switch Schemat blokowy instrukcji
Przykład: prosty kalkulator
// 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; )
Wynik
Podaj operator (+, -, *,): - Podaj dwa operandy: 32,5 12,4 32,5 - 12,4 = 20,1
Operator - wprowadzony przez użytkownika jest przechowywany w zmiennej operator. I dwa operandy 32,5 i 12,4 są przechowywane odpowiednio w zmiennych n1 i n2.
Ponieważ operator jest -
, sterowanie programem przechodzi do
printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);
Wreszcie instrukcja break kończy switch
instrukcję.