Операторы C Switch Case

Операторы C Switch Case Программирование и разработка

Оператор switch или просто оператор case — это механизм потока управления, который определяет выполнение программы на основе значения переменной или выражения.

Использование оператора switch позволяет тестировать несколько условий и выполнять определенный блок только в том случае, если условие истинно. Хотя он работает аналогично оператору if… else if….else, его синтаксис проще и легче читать и управлять.

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

Основное использование

Оператор switch легко реализовать. Общий синтаксис показан ниже:

switch (expr) {
casevar1:
// code
break;
casevar2:
//code
break;
casevar3:
// code
break;
casevarN:
// code
break;

….
….
default:
//code
}

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

Оператор switch реализует простую логику для оценки каждого из блоков case.

Он начинается с вычисления выражения внутри блока переключателя. Затем он сравнивает значение из блока переключения с каждым блоком case.

Как только он находит совпадение внутри одного из определенных блоков case, он выполняет код внутри этого блока, пока не встретит ключевое слово break.

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

ПРИМЕЧАНИЕ. Хорошо убедиться, что каждый оператор case завершается оператором break, чтобы предотвратить выполнение всех операторов после соответствующего блока.

Пример оператора C Switch Case

Проиллюстрируем оператор switch очень простым примером:

#include <stdio.h>

intmain() {
int var = 5;
switch (var) {
case3:
printf(«The value is 3»);
break;
case4:
printf(«The value is 4»);
break;
case5:
printf(«The value is 5»);
break;
default:
printf(«The value is neither 3, 4 nor 5»);
}
return0;
}

Если мы запустим приведенный выше пример, мы должны получить результат, аналогичный приведенному ниже:

The value is 5

Следующая блок-схема иллюстрирует логику вышеуказанной программы:

Вложенный оператор переключения

C позволяет вам иметь вложенные операторы переключения внутри оператора переключения. Вложенный оператор switch привязывается к значению внешнего переключателя.

Рассмотрим следующий пример:

#include <stdio.h>

intmain() {
int dept = 5;
intaccess_code = 2028;
switch (dept) {
case1:
switch (access_code) {
case2021:
printf(«[+] Valid access code!»);
break;
default:
printf(«[-] Invalid access code!»);
}
break;
default:
printf(«[-] Only Department 1 is allowed!»);
}
return0;
}

В приведенном выше примере мы реализуем два оператора switch. Первый проверяет, равен ли предоставленный dept 1. Если true, он переходит к следующему блоку переключения и проверяет действительный код доступа.

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

Ниже показано выполнение кода выше с правильным и неправильным кодом отдела и доступа.

В первом примере и отдел, и код доступа верны

В первом примере и отдел, и код доступа верны; таким образом, выполнение никогда не достигает блоков по умолчанию.

Во втором примере неверны и отдел, и код доступа; следовательно, выполнение немедленно переходит к первому блоку по умолчанию.

Рекомендации по операторам переключения

Ниже приведены краткие рекомендации, на которые стоит обратить внимание при создании операторов switch в C.

  1. Вы должны передать выражение ключевому слову switch.
  2. Операторы case должны проверять уникальные значения
  3. Завершите каждый блок case с помощью ключевого слова break.
  4. Вы можете вложить несколько операторов switch.
  5. Вы можете включить оператор по умолчанию, когда действие необходимо для несоответствующих случаев.

Заключение

Это руководство познакомило вас с основами создания и использования операторов switch C. Операторы switch полезны, когда у вас есть сложные случаи принятия решений, которые может быть трудно реализовать с помощью оператора and if else.

Оцените статью
bestprogrammer.ru
Добавить комментарий