logo

Оператор Switch у C

Інструкція Switch case обчислює заданий вираз і на основі обчисленого значення (що відповідає певній умові) виконує пов’язані з ним оператори. В основному він використовується для виконання різних дій на основі різних умов (випадків).

  • Інструкції Switch case дотримуються механізму керування вибором і дозволяють значенню змінювати керування виконанням.
  • Вони замінюють довго оператори if які порівнюють змінну з кількома інтегральними значеннями.
  • Оператор switch є оператором багатостороннього розгалуження. Він забезпечує простий спосіб відправити виконання в різні частини коду на основі значення виразу.

У C оператор switch case використовується для виконання однієї умови з кількох умов. Це схоже на сходи if-else-if.



типи циклу for

Інструкція switch складається з умовних випадків і випадку за замовчуванням.

Синтаксис оператора switch у C

  switch(expression)     {     case   value1  :   statement_1;   break;     case   value2  :   statement_2;   break;   . . .   case   value_n  :   statement_n;   break;     default:   default_statement; }>

Як використовувати команду switch case в C?

Перш ніж використовувати регістр switch у нашій програмі, нам потрібно знати про деякі правила оператора switch.

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

Нижче наведено деякі правила, яких ми повинні дотримуватися під час використання оператора switch:



  1. У заяві про перемикач, регістр значення має бути з char і внутр типу.
  2. Може бути один або N випадків.
  3. Значення в регістрі повинні бути унікальний .
  4. Кожен оператор справи може мати оператор перерви. Це необов'язково.
  5. Заява за замовчуванням також необов’язкова.

приклад

C
// C program to Demonstrate returning of day based numeric // value #include  int main() {  // switch variable  int var = 1;  // switch statement  switch (var) {  case 1:  printf('Case 1 is Matched.');  break;  case 2:  printf('Case 2 is Matched.');  break;  case 3:  printf('Case 3 is Matched.');  break;  default:  printf('Default case is Matched.');  break;  }  return 0; }>

Вихід
Case 1 is Matched.>

Як переключити роботу оператора?

Робота оператора switch у C виглядає наступним чином:

  1. Крок 1: Оцінюється змінна switch.
  2. Крок 2: Оцінене значення зіставляється з усіма наявними випадками.
  3. Крок 3A: Якщо відповідне значення регістру знайдено, виконується відповідний код.
  4. Крок 3B: Якщо відповідний код не знайдено, виконується регістр за замовчуванням, якщо він присутній.
  5. Крок 4A: Якщо ключове слово break присутнє в case, тоді управління програмою виривається з оператора switch.
  6. Крок 4B: Якщо ключове слово break відсутнє, тоді виконуються всі випадки після відповідного випадку.
  7. крок 5: Оператори після оператора switch виконуються.

Ми також можемо зрозуміти роботу оператора switch у C за допомогою блок-схеми.

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

переключити регістр в c

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



Поломка корпусу вимикача

Це ключове слово використовується для зупинки виконання всередині блоку switch. Це допомагає завершити блокування комутатора та вийти з нього. Коли оператор break досягається, перемикач завершується, і потік керування переходить до наступного рядка після оператора switch.

The оператор break необов'язковий . Якщо пропущено, виконання продовжиться в наступному випадку. Потік керування переходитиме до наступних випадків, доки не буде досягнуто перерви.

Приклад корпусу вимикача без розриву

C
// C Program to demonstrate the behaviour of switch case // without break #include  int main() {  int var = 2;  // switch case without break  switch (var) {  case 1:  printf('Case 1 is executed.
');  case 2:  printf('Case 2 is executed.
');  case 3:  printf('Case 3 is executed.');  case 4:  printf('Case 4 is executed.');  }  return 0; }>

Вихід
Case 2 is executed. Case 3 is executed.Case 4 is executed.>

За замовчуванням у регістрі перемикачів

Ключове слово за замовчуванням використовується для визначення набору оператори для виконання, якщо немає відповідності регістру .

Це є необов'язковий використовувати ключове слово за замовчуванням у регістрі перемикачів. Навіть якщо оператор switch case не має оператора за замовчуванням, він працюватиме без проблем.

Важливі моменти щодо операторів Switch Case

1. Вираз Switch має призвести до a постійне значення

Якщо вираз, наданий у операторі switch, не призводить до постійного значення, він буде недійсним. Деякі дійсні вирази для зміни регістру будуть такими:

бульбашкове сортування в java
// Constant expressions allowed switch(1+2+23) switch(1*2+3%4) // Variable expression are allowed provided // they are assigned with fixed values switch(a*b+c*d) switch(a+b+c)>

2. Значення виразу має бути лише типу int або char.

Інструкція switch може обчислювати лише ціле чи символьне значення. Отже, вираз switch має повертати лише значення типу int або char.

3. Регістри повинні бути унікальними

У операторі switch C повторювані значення регістру не допускаються.

3. Вкладення операторів switch

Допускається вкладення операторів switch , що означає, що ви можете мати оператори switch всередині іншого switch. Однак слід уникати вкладених операторів switch, оскільки це робить програму більш складною та менш читабельною.

4. Блок за замовчуванням можна розмістити де завгодно

Незалежно від його розташування, випадок за замовчуванням виконується, лише якщо не виконується жодна з інших умов. Отже, розміщення його на початку, в середині або в кінці не змінює основної логіки.

Приклади оператора switch у C

Приклад 1: програма C для друку дня тижня за допомогою перемикання регістру.

C
// C program to print the day using switch #include  // Driver Code int main() {  int day = 2;  printf('The day with number %d is ', day);  switch (day) {  case 1:  printf('Monday');  break;  case 2:  printf('Tuesday');  break;  case 3:  printf('Wednesday');  break;  case 4:  printf('Thursday');  break;  case 5:  printf('Friday');  break;  case 6:  printf('Saturday');  break;  case 7:  printf('Sunday');  break;  default:  printf('Invalid Input');  break;  }  return 0; }>

Вихід
The day with number 2 is Tuesday>

Приклад 2: Простий калькулятор із змінним регістром у C

C
// C Program to create a simple calculator using switch // statement #include  #include  // driver code int main() {  // switch variable  char choice;  // operands  int x, y;  while (1) {  printf('Enter the Operator (+,-,*,/)
Enter x to '  'exit
');  scanf(' %c', &choice);  // for exit  if (choice == 'x') {  exit(0);  }  printf('Enter the two numbers: ');  scanf('%d %d', &x, &y);  // switch case with operation for each operator  switch (choice) {  case '+':  printf('%d + %d = %d
', x, y, x + y);  break;  case '-':  printf('%d - %d = %d
', x, y, x - y);  break;  case '*':  printf('%d * %d = %d
', x, y, x * y);  break;  case '/':  printf('%d / %d = %d
', x, y, x / y);  break;  default:  printf('Invalid Operator Input
');  }  }  return 0; }>


Вихід

Enter the operator (+, -, *, /) Enter x to exit + Enter the two numbers: 100 + 200 100 + 200 = 300>

Переваги C switch Statement

  1. Легше читати, ніж if else if.
  2. Легше налагоджувати та підтримувати велику кількість умов.
  3. Більш висока швидкість виконання.

Недоліки C switch Statement

  1. Перемикач регістру може оцінювати лише тип int або char.
  2. Немає підтримки логічних виразів.
  3. Майте на увазі, що додавати перерву в кожному випадку.

Висновок

У цій статті ми обговорювали інструкцію switch у програмуванні на C і як її використовувати. Це умовне твердження, подібне до драбини «якщо-інакше-якщо», що має свої переваги та недоліки. Це переважно, коли кількість умов для оцінки велика.

Поширені запитання щодо заяви про перемикач C

1. Що таке регістр switch у C?

Оператор switch case — це оператор керування потоком, у якому ми можемо визначити змінну switch, а потім виконати інший код на основі значення змінної switch. Це альтернатива if else if ladder.

2. Який регістр в операторі switch у C?

Ключове слово case використовується для визначення різних випадків і пов’язаного з ними коду в операторі switch.

3. Що робить розрив у корпусі вимикача?

Ключове слово break використовується для виходу з блоку switch після виконання відповідного регістру.

тестові випадки junit

4. Які відмінності між switch і if else if ladder у C?

Нижче наведені основні відмінності між C switch і C if else if ladder :

перемикач

якщо інакше якщо

Він виконує різні випадки на основі значення змінної switch.Він виконує різні блоки на основі вказаної умови.
Він може обчислювати лише вирази типу int або char.Він може оцінити будь-який тип вираження.
Швидше та легше читати завдяки великій кількості умов.Це може стати безладним, коли є багато умов.

Необхідно прочитати:

  • Цікаві факти про Switch Case в C
  • Друкуйте окремі цифри як слова без використання if або Switch