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

Оператор switch-case в C: синтаксис, примеры и лучшие практики

Что такое оператор switch в C?

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

Каждый case уникально идентифицируется константным выражением. Когда значение выражения совпадает с меткой case, выполняется соответствующий блок операторов, и выполнение выходит из switch (если не опущен break, что вызывает fall-through — провал).

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

switch (expression) { case constant1: // statements break; case constant2: // statements break; // … default: // statements break; } // statements following the switch

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

На следующем блок-схеме показан процесс принятия решения для оператора switch:

Оператор switch-case в C: синтаксис, примеры и лучшие практики

Пример 1: Базовый switch

#include <stdio.h> int main() { int num = 8; switch (num) { case 7: printf("Value is 7"); break; case 8: printf("Value is 8"); break; case 9: printf("Value is 9"); break; default: printf("Out of range"); break; } return 0; }

Вывод:

Value is 8

Пример 2: Использование default

#include <stdio.h> int main() { int language = 10; switch (language) { case 1: printf("C#\n"); break; case 2: printf("C\n"); break; case 3: printf("C++\n"); break; default: printf("Other programming language\n"); } return 0; }

Вывод:

Other programming language

Пример 3: Объединенные case

#include <stdio.h> int main() { int number = 5; switch (number) { case 1: case 2: case 3: printf("One, Two, or Three.\n"); break; case 4: case 5: case 6: printf("Four, Five, or Six.\n"); break; default: printf("Greater than Six.\n"); } return 0; }

Вывод:

Four, Five, or Six.

Вложенные switch

Switch-конструкции можно вкладывать, позволяя иерархическое принятие решений. Следующий пример демонстрирует простой поток аутентификации:

#include <stdio.h> int main() { int ID, password; printf("Please Enter Your ID:\n"); scanf("%d", &ID); switch (ID) { case 500: printf("Enter your password:\n"); scanf("%d", &password); switch (password) { case 0: printf("Welcome Dear Programmer\n"); break; default: printf("Incorrect password\n"); } break; default: printf("Incorrect ID\n"); } return 0; }

ВЫВОД:

 Please Enter Your ID: 500 Enter your password: 000 Welcome Dear Programmer
Оператор switch-case в C: синтаксис, примеры и лучшие практики

Почему switch предпочтительнее длинных цепочек if-else

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

Правила использования switch

Ключевые выводы

Язык C

  1. Освоение оператора switch в C#: синтаксис, примеры и лучшие практики
  2. Цикл do-while в C++: синтаксис, примеры и вложенные циклы
  3. Оператор switch-case в C++: синтаксис, применение и практические примеры
  4. Указатели в C++: концепции, примеры и практические применения
  5. Перегрузка операторов в C++: практическое руководство с примерами кода
  6. Функции в C++: подробное объяснение с практическими примерами кода
  7. Коллекции в C#: практическое руководство с реальными примерами
  8. Функция print() в Python: практическое руководство с примерами
  9. Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
  10. Функция round() в Python: подробное объяснение с практическими примерами