C – оператор переключения

Опубликовано: 7 Января, 2023

Оператор switch в языке C — это альтернатива лестничному оператору if-else-if, который позволяет нам выполнять несколько операций для различных возможных значений одной переменной, называемой переменной switch.

Синтаксис переключателя:

int main()
{
    switch (Expression) {
        // Expression evaluates to a single value.

    case Value1: // Case is picked when expression gives
                 // Value1.
                 // This can be seen as starting of if-else
                 // ladder
        Statements;
        break;
    case Value2: // else if conditions
        Statements;
        break;
        .. // So on.
            default : // When value of expression didn"t
                      // match with any case This can be
                      // seen as else of if-else ladder
                      Statements;
        break;
    }
    return 0;
}

Правила оператора switch:

  • Выражение переключения должно иметь целочисленный или символьный тип.
  • Значение case должно быть целым числом или символьной константой.
  • Значение case можно использовать только внутри оператора switch.
  • Оператор break должен присутствовать в операторе Switch. Если в кейсе не найден оператор break, все кейсы будут выполнены сразу после совпадающего кейса. Это известно как падение через состояние оператора C switch.

Работа на коммутаторе:

  • Сначала оценивается «Выражение» внутри предложения switch и проверяется, является ли оно целым числом или символом.
  • Затем выражение сравнивается со значением case внутри каждого оператора case.
  • Если совпадение найдено, все операторы, следующие за этой соответствующей меткой case, выполняются до тех пор, пока не встретится разрыв или конец переключателя. Это критическое заявление. Кроме того, обратите внимание, что для выполнения любого оператора внутри переключателя он должен быть в любом случае или по умолчанию.

Примечание. Подобно вложенному if-else, у нас также может быть вложенный переключатель.

Выключатель

если еще

Только один должен быть оценен внутри switch().

Все выражения внутри предложения if() и else if() сумматора if..else-if l должны оцениваться одно за другим, пока одно из выражений не станет истинным.

Легко читать и интерпретировать

Когда количество случаев увеличивается, его трудно читать и интерпретировать.

Допустимы только целочисленные и символьные выражения.

Также поддерживает другие выражения/значения типа данных.

Если найден соответствующий случай, все операторы, следующие за этим случаем, оцениваются до тех пор, пока не будет найден разрыв или конец переключателя.

Выполняется только один блок if/else-if, и управление переходит в конец лестницы if..else if.

Switch может содержать только одно выражение, а метки case могут содержать только постоянные значения.

Оба значения Expression/Constant могут быть записаны в любых условиях if и else if.

Пример 1. Создание простого калькулятора в коммутаторе

Пример 2. Вложенные операторы Switch

C