Оператор выбора - switch

Оператор выбора switch (часто его называют переключателем) предназначен для выбора ветви вычислительного процесса исходя из значения управляющего выражения.При этом значение управляющего выражения сравнивается со значениями в списке целых или символьных констант. Если будет найдено совпадение, то выполнится ассоциированный с совпавшей константой оператор.

Общая форма оператора switchследующая:

switch (выражение) { case постоянная1: последовательность операторов break; case постоянная2: последовательность операторов break; case постоянная3: последовательность операторов break; default: последовательность операторов;}

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

Значение управляющего выражения по очереди сравнивается с постоянными в операторах case.

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

Оператор default выполняется в том случае, когда значение управляющего выражения не совпало ни с одной постоянной. Оператор default также может отсутствовать. В этом случае при отсутствии совпадений не выполняется ни один оператор.

Оператор case — это метка, однако он не может быть использован сам по себе, вне оператора switch.

 

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

Об операторе switch очень важно помнить следующее:

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

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

В примере программа выводит на экран меню проверки правописания и вызывает соответствующую процедуру:

void menu(void){ char ch; printf("1. Проверка правописания\n"); printf("2. Коррекция ошибок\n"); printf("3. Вывод ошибок\n"); printf("Для пропуска нажмите любую клавишу\n"); printf(" Введите Ваш выбор: "); ch = getchar(); /* чтение клавиш */ switch(ch) { case '1': check_spelling(); break; case '2': correct_errors(); break; case '3': display_errors(); break; default : printf("Ни выбрана ни одна опция"); }}







Дата добавления: 2015-04-25; просмотров: 741;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.