Что такое заявление о смене?
Оператор Switch проверяет значение переменной и сравнивает его с несколькими случаями. Как только совпадение наблюдений найдено, выполняется блок операторов, связанных с этим конкретным случаем.
Каждый случай в блоке коммутатора имеет свое имя / номер, который называется идентификатором. Значение, предоставленное пользователем, сравнивается со всеми случаями внутри блока переключателей, пока не будет найдено совпадение.
Если совпадение с регистром НЕ найдено, выполняется инструкция по умолчанию, и элемент управления выходит из блока переключателей.
В этом уроке вы узнаете
- Синтаксис
- Блок-схема корпуса коммутатора
- пример
- Вложенный переключатель
- Зачем нам нужен чехол Switch?
- Правила для заявления переключателя:
Синтаксис
Общий синтаксис того, как switch-case реализован в программе ‘C’, выглядит следующим образом:
switch( expression ) { case value-1: Block-1; Break; case value-2: Block-2; Break; case value-n: Block-n; Break; default: Block-1; Break; } Statement-x;
- Выражение может быть целочисленным выражением или символьным выражением.
- Значения-1, 2, n — это метки, которые используются для индивидуальной идентификации каждого случая. Помните, что метки регистра не должны быть одинаковыми, так как это может создать проблему при выполнении программы. Предположим, у нас есть два случая с такой же меткой, как «1». Затем при выполнении программы первый случай будет выполнен, даже если вы хотите, чтобы программа выполнила второй случай. Это создает проблемы в программе и не обеспечивает желаемого результата.
- Метки дел всегда заканчиваются двоеточием (:). Каждый из этих случаев связан с блоком.
- Блок — это не что иное, как несколько операторов, сгруппированных для конкретного случая.
- Всякий раз, когда выполняется переключатель, значение test-expression сравнивается со всеми случаями, которые мы определили внутри переключателя. Предположим, что тестовое выражение содержит значение 4. Это значение сравнивается со всеми случаями до случая, чья метка четыре найдена в программе. Как только случай обнаружен, выполняется блок операторов, связанный с этим конкретным случаем, и управление выходит из коммутатора.
- Ключевое слово break в каждом случае указывает на конец конкретного случая. Если мы не ставим разрыв в каждом случае, тогда, даже если конкретный случай выполняется, коммутатор продолжит выполнять все случаи, пока не будет достигнут конец. Этого не должно быть; следовательно, мы всегда должны ставить ключевое слово break в каждом случае. Прерывание прервет случай, как только он будет выполнен, и управление выпадет из переключателя.
- Случай по умолчанию является необязательным. Всякий раз, когда значение test-expression не соответствует ни одному из случаев внутри коммутатора, будет выполнено значение по умолчанию. В противном случае нет необходимости писать значение по умолчанию в коммутаторе.
- Как только переключатель будет выполнен, управление перейдет к оператору-x, и выполнение программы продолжится.
Блок-схема корпуса коммутатора
Следующая диаграмма иллюстрирует, как выбирается регистр в случае коммутатора:
пример
Следующая программа иллюстрирует использование переключателя:
#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
- В данной программе мы инициализировали переменную num значением 8.
- Конструкция switch используется для сравнения значения, хранящегося в переменной num, и выполнения блока операторов, связанных с соответствующим регистром.
- В этой программе, поскольку значение, хранящееся в переменной num, равно восьми, коммутатор выполнит случай, для которого метка регистра равна 8. После выполнения случая управление выпадет из переключателя, и программа будет завершена с успешным результатом: печать значения на экране вывода.
Попробуйте изменить значение переменной num и обратите внимание на изменение в выводе.
Например, мы рассмотрим следующую программу, которая по умолчанию:
#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");}}
Вывод:
Other programming language
При работе с регистром переключения в C вы группируете несколько вариантов с уникальными метками. Вы должны вводить оператор break в каждом случае для перехода в конце оператора switch.
Необязательный случай по умолчанию запускается, когда не найдено других совпадений.
Мы рассмотрим следующий оператор switch:
#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");}}
Вывод:
Four, Five, or Six.
Вложенный переключатель
В C мы можем встроить внутренний переключатель во внешний переключатель. Кроме того, константы регистра внутреннего и внешнего коммутатора могут иметь общие значения и без каких-либо конфликтов.
Мы рассматриваем следующую программу, в которой пользователь вводит свой собственный идентификатор, если идентификатор действительный, он попросит его ввести свой пароль, если пароль правильный, программа напечатает имя пользователя, в противном случае программа напечатает неверный Пароль и, если идентификатор не существует, программа напечатает неверный идентификатор
#include <stdio.h> int main() { int ID = 500; int password = 000; printf("Plese Enter Your ID:\n "); scanf("%d", & ID); switch (ID) { case 500: printf("Enter your password:\n "); scanf("%d", & password); switch (password) { case 000: printf("Welcome Dear Programmer\n"); break; default: printf("incorrect password"); break; } break; default: printf("incorrect ID"); break; } }
ВЫВОД:
Plese Enter Your ID: 500 Enter your password: 000 Welcome Dear Programmer
- В данной программе мы инициализировали две переменные: идентификатор и пароль
- Внешняя конструкция переключателя используется для сравнения значения, введенного в идентификатор переменной. Выполняется блок операторов, связанный с соответствующим регистром (когда ID == 500).
- Если оператор блока выполняется с соответствующим регистром, внутренний переключатель используется для сравнения значений, введенных в переменную password, и выполнения операторов, связанных с соответствующим регистром (когда пароль == 000).
- В противном случае регистр переключателя активирует регистр по умолчанию и напечатает соответствующий текст, касающийся схемы программы.
Зачем нам нужен чехол Switch?
Существует одна потенциальная проблема с оператором if-else, которая заключается в том, что сложность программы увеличивается всякий раз, когда увеличивается число альтернативных путей. Если в программе используется несколько конструкций if-else, программа может стать трудной для чтения и понимания. Иногда это может даже смутить разработчика, который сам написал программу.
Решением этой проблемы является оператор switch.
Правила для заявления переключателя:
- Выражение всегда должно выполняться в результате.
- Метки дел должны быть постоянными и уникальными.
- Метки дел должны заканчиваться двоеточием (:).
- Ключевое слово break должно присутствовать в каждом случае.
- Может быть только одна метка по умолчанию.
- Мы можем вкладывать несколько операторов switch.
Резюме
- Переключатель является конструктом принятия решения в «C».
- Переключатель используется в программе, где участвуют несколько решений.
- Переключатель должен содержать исполняемое тестовое выражение.
- Каждый случай должен включать ключевое слово break.
- Метка регистра должна быть постоянной и уникальной.
- По умолчанию это необязательно.
- Несколько операторов switch могут быть вложены друг в друга.