C Превключване на случаите

C Switch Case Statements



Оператор switch - или просто оператор case - е механизъм на контролен поток, който определя изпълнението на програма въз основа на стойността на променлива или израз.

Използването на оператор switch ви позволява да тествате множество условия и да изпълнявате конкретен блок само ако условието е вярно. Въпреки че работи подобно на if… else if… .else, синтаксисът е по -прост и по -лесен за четене и управление.







Този урок се фокусира върху това да ви покаже как да създавате и работите с инструкции за превключване в C програмиране.



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

Операторът за превключване е лесен за изпълнение. Общият синтаксис е както е показано по -долу:



превключвател (expr) {
casevar1:
// код
прекъсване;
casevar2:
// код
прекъсване;
casevar3:
// код
прекъсване;
casevarN:
// код
прекъсване;
...
….
….
по подразбиране:
// код
}

Как работи

Изразът switch включва проста логика за оценка на всеки от блоковете на случая.





Той започва с оценка на израза вътре в превключващия блок. След това сравнява стойността от превключвателния блок с всеки блок от случаи.

След като локализира съвпадение в един от дефинираните блокове за регистър, той изпълнява кода вътре в този блок, докато не срещне ключовата дума break.



Ако не срещне съвпадение в нито един от дефинираните регистърни блокове, той преминава към оператора по подразбиране и изпълнява кода вътре в него. Блокът по подразбиране е незадължителен и пропускаем, ако няма необходимо действие за несъответстващ сценарий

ЗАБЕЛЕЖКА: Добре е да се гарантира, че всеки оператор на случай завършва с оператор break, за да се предотврати изпълнението на всички инструкции след съвпадащия блок.

C Пример за декларация за случай на превключване

Нека илюстрираме оператора switch с много прост пример:

#включва

intmain() {
intкъдето= 5;
превключвател (където) {
случай 3:
printf („Стойността е 3“);
прекъсване;
случай 4:
printf („Стойността е 4“);
прекъсване;
случай 5:
printf („Стойността е 5“);
прекъсване;
по подразбиране:
printf („Стойността не е нито 3, 4, нито 5“);
}
връщане0;
}

Ако изпълним горния пример, трябва да получим изход, подобен на този по -долу:

Стойността е5

Следващата диаграма илюстрира логиката на горната програма:

Изявление за вложен превключвател

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

Помислете за следния пример:

#включва

intmain() {
intдълбочина= 5;
intaccess_code= 2028 г.;
превключвател (дълбочина) {
случай1:
превключвател (код за достъп) {
случай2021:
printf ('[+] Валиден код за достъп!');
прекъсване;
по подразбиране:
printf ('[-] Невалиден код за достъп!');
}
прекъсване;
по подразбиране:
printf ('[-] Само отдел 1 е разрешен!');
}
връщане0;
}

В горния пример ние прилагаме два оператора switch. Първият проверява дали предоставеният отдел е 1. Ако е вярно, той преминава към следващия блок за превключване и проверява за валидния код за достъп.

Ако стойността на dept не е една, изпълнението се премества в блока по подразбиране.

По -долу е изпълнението на горния код с правилен и неправилен отдел и код за достъп.

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

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

Насоки за превключване на изявления

По -долу са бързи указания, които си струва да се отбележат при създаването на оператори за превключване в C.

  1. Трябва да предадете израз на ключовата дума switch.
  2. Изявленията за случаите трябва да проверяват за уникални стойности
  3. Прекратете всеки блок с ключови думи break.
  4. Можете да вмъкнете множество оператори за превключване.
  5. Можете да включите изявление по подразбиране, когато е необходимо действие за несъответстващи случаи.

Заключение

Това ръководство ви преведе през основите на създаването и използването на C switch инструкции. Операторите за превключване са полезни, когато имате сложни случаи на решение, които може да са трудни за изпълнение с оператора и ако друго.