Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Оператор switch в C: синтаксис, логика и практический пример

Оператор switch в C

В этом руководстве вы узнаете, как создавать чистый, эффективный оператор switch в C, с практическим примером калькулятора.

Конструкция switch позволяет выполнять один блок кода из множества альтернатив. Хотя можно использовать цепочку if…else if, switch даёт более чистый синтаксис и быструю читаемость, особенно когда решение зависит от одного выражения.


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

switch (expression) {
    case constant1:
        // операторы
        break;
    case constant2:
        // операторы
        break;
    /* … */
    default:
        // операторы по умолчанию
}

Как это работает

Ключевые моменты


Блок-схема оператора switch

Оператор switch в C: синтаксис, логика и практический пример

Пример: Простой калькулятор

#include <stdio.h>
int main(void) {
    char operation;
    double n1, n2;
    printf("Enter an operator (+, -, *, /): ");
    scanf("%c", &operation);
    printf("Enter two operands: ");
    scanf("%lf %lf", &n1, &n2);
    switch (operation) {
        case '+':
            printf("%.1lf + %.1lf = %.1lf\n", n1, n2, n1 + n2);
            break;
        case '-':
            printf("%.1lf - %.1lf = %.1lf\n", n1, n2, n1 - n2);
            break;
        case '*':
            printf("%.1lf * %.1lf = %.1lf\n", n1, n2, n1 * n2);
            break;
        case '/':
            printf("%.1lf / %.1lf = %.1lf\n", n1, n2, n1 / n2);
            break;
        default:
            printf("Error! operator is not correct\n");
    }
    return 0;
}

Пример вывода

Enter an operator (+, -, *, /): -
Enter two operands: 32.5 12.4
32.5 - 12.4 = 20.1

При вводе - программа переходит к соответствующему case, выполняет вычитание, и break выходит из switch. Если оператор неверен, срабатывает default.

Fall-through (проваливание) — когда это полезно

Иногда намеренное отсутствие break удобно для объединения случаев:

switch (ch) {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
        printf("Гласная\n");
        break;
    default:
        printf("Согласная или другой символ\n");
}

Ограничения switch в C

Switch vs if-else цепочка

Критерийswitchif-else цепочка
Читаемость при многих случаяхВысокаяНизкая
Типы выраженийТолько целыеЛюбые (включая float, строки)
Оптимизация компилятораJump table (O(1))Последовательная проверка (O(n))
Диапазоны значенийНет (только константы)Да (if (x > 0 && x < 10))

Язык C

  1. Цепь с переключателем: практическое руководство по базовым электрическим цепям
  2. Эксперимент с коммутирующим диодом: Подавление индуктивного отбоя неоновой лампой
  3. Понимание электрических коммутаторов: типы, функции и применения
  4. Устранение дребезга контактов механических коммутаторов
  5. Мультиметры: от аналоговых к цифровым — полное руководство
  6. Освоение оператора switch в C#: синтаксис, примеры и лучшие практики
  7. Оператор break в C#: как и когда использовать
  8. Оператор continue в C#: как эффективно пропускать итерации циклов
  9. Оператор switch-case в C++: синтаксис, применение и практические примеры
  10. Базовый синтаксис C: токены, идентификаторы, ключевые слова и пробелы