przełącznik ... przypadku w C Programowanie

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… ifdrabiną. Jednak składnia switchinstrukcji 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ż do breaknapotkania.
  • 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, defaultklauzula wewnątrz switchinstrukcji 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 switchinstrukcję.

Interesujące artykuły...