switch ... case в программировании на C

Содержание

В этом руководстве вы научитесь создавать оператор switch в программировании на C с помощью примера.

Оператор switch позволяет нам выполнять один блок кода из множества альтернатив.

То же самое можно сделать и с if… else… ifлестницей. Однако синтаксис switchоператора намного проще читать и писать.

Синтаксис switch… case

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

Как работает оператор switch?

Выражение оценивается один раз и сравнивается со значениями каждой метки case.

  • Если есть совпадение, выполняются соответствующие операторы после соответствующей метки. Например, если значение выражения равно constant2, операторы после case constant2:выполняются до тех пор, пока breakне встретятся.
  • Если совпадений нет, выполняются операторы по умолчанию.

Если мы не используем break, выполняются все операторы после соответствующей метки.

Кстати, defaultпредложение внутри switchоператора не является обязательным.

Блок-схема выписки 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 хранятся в переменных n1 и n2 соответственно.

Поскольку оператор есть -, управление программой переходит к

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

Наконец, оператор break завершает switchоператор.

Интересные статьи...