русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор switch


Дата добавления: 2014-11-27; просмотров: 569; Нарушение авторских прав


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

switch (выражение) {

case константа1 :

последовательность операторов

break;

case константа2 :

последовательность операторов

break;

. . .

case константаN :

последовательность операторов

default :

последовательность операторов

}

Оператор default выполняется, если не найдено соответствий. default не обязателен и, его нет, то в случае отсутствия совпадений ничего не происходит. Когда обнаруживается совпадение, операторы, ассоциированные с соответствующим case, выполняются до тех пор, пока не встретится оператор break . В случае default (или последнего case, если отсутствует default), оператор switch заканчивает работу при обнаружении конца.

Следует знать о трех важных моментах оператора switch:

1. Оператор switch отличается от оператора if тем, что он может выполнять только операции проверки строгого равенства, в то время как if может вычислять логические выражения и отношения.

2. Не может быть двух констант в одном операторе switch, имеющих одинаковое значение. Конечно, оператор switch, включающий в себя другой оператор switch, может содержать аналогичные константы.

3. Если в операторе switch используются символьные константы, они автоматически преобразуются к целочисленным значениям.

Пример.

char sign;

int x, y, z;

switch (sign) {

case ‘-‘ : z = x-y;

break;

case ‘+’ : z = x+y;



break;

case ‘*’ : z = x*y;

break;

case ‘/’ : z = x/y;

case ‘%’ : z = x%y;

break;

default : printf(“Неизвестная операция\n”);

}

С технической точки зрения операторы break являются необязательными в операторе switch. Они используются для окончания работы последовательности операторов, ассоциированных с данной константой. Если оператор break отсутствует, продолжают выполняться операторы следующего раздела case, пока не будет достигнут оператор break или конец оператора switch. О константах выбора можно думать как о метках. Выполнение начинается с метки, соответствующей искомому значению и будет продолжаться, пока не будет достигнут break или конец оператора switch. Можно использовать пустые условия. Перепишем предыдущий пример в виде:

Пример.

char sign;

int x, y, z;

switch (sign) {

case ‘%’ :

case ‘-‘ : z = x-y;

case ‘+’ : z = x+y;



case ‘*’ : z = x*y;

case ‘/’ : z = x/y;

default : printf(“Неизвестная операция\n”);

}

При работе с этим фрагментом будет происходить следующее:

1) при вводе символа sign = ‘%’ , будут выполняться операторы: z = x-y; z = x+y; z = x*y; z=x/y и выводится сообщение “Неизвестная операция”;

2) при вводе символа sign = ‘+’ будут выполняться операторы: z = x+y; z = x*y; z = x/y и выводится сообщение “Неизвестная операция”;

3) при вводе символа sign =’*’ будут выполняться операторы: z = x*y; z = x/y и выводится сообщение “Неизвестная операция” и т. д.

В блоке кода оператора switch можно делать объявления переменных как сразу после ключевого слова switch, так и после слова case. Например:

switch (c) {

int t;

case 1:

. . .

}

или

switch (c) {

case 1:

int t;

. . .

}

6.3 Вложенные операторы switch

Оператор switch может иметь среди последовательности операторов другой оператор switch. Даже если константы case внутреннего и внешнего операторов имеют одинаковые значения, не возникнет никакого конфликта. Например:

switch (x) {

case 1 :

switch (y) {

case 0 : printf(“Ошибка! Деление на ноль.”);

Break;

case 1 : process(x, y);

}

break;

case 2 :

. . .

 

 



<== предыдущая лекция | следующая лекция ==>
В а р и а н т ы з а д а н и й | Оператор for


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.