Оператор варианта case

Оператор варианта (выбора) предназначен для разветвления процесса вычислений на несколько направлений. Структурная схема оператора приведена на рис. 4.4.

Формат оператора: case выражение of

константы_1: оператор_1; константы_2: оператор_2; константы_п: оператор_п; [else: оператор] end;

Выполнение оператора начинается с вычисления выражения. Затем управление передается на оператор, помеченный константами, значение одной из которых совпало с результатом вычисления выражения. После этого выполняется выход из оператора. Если совпадения не произошло, выполняются операторы, расположенные

Структурная схема оператора выбора

Рис. 4.4. Структурная схема оператора выбора

после слова else, а при его отсутствии управление передается оператору, следующему за case.

Выражение после ключевого слова case должно быть порядкового типа, константы — того же типа, что и выражение. Чаще всего после case используется имя переменной. Перед каждой ветвью оператора можно записать одну или несколько констант через запятую или операцию диапазона, обозначаемую двумя идущими подряд точками, например: case a of

  • 4 : writeln ('4');
  • 5, 6 : writeln ('5 или 6');
  • 7..12 : writeln ('от 7 до 12'); end;

ВНИМАНИЕ

Если по какой-либо ветви требуется записать не один, а несколько операторов, они заключаются в блок с помощью ключевых слов begin и end.

Пример

Программа, определяющая, какая из курсорных клавиш была нажата.

Для объяснения этой программы надо забежать немного вперед и рассказать о том, что в состав оболочек ПАСКАЛЯ входят так называемые модули — библиотеки полезных при программировании ресурсов. В модуле Crt есть функция readkey, позволяющая получить код нажатой клавиши.

Функция readkey работает так: если нажата алфавитно-цифровая клавиша, функция возвращает соответствующий символ. Если нажата клавиша курсора, возвращается символ с кодом 0, а при повторном вызове можно получить так называемый расширенный код клавиши. Для простоты можно считать, что расширенный код — это номер клавиши на клавиатуре. Функция ord позволяет получить числовой код символа.

program cursor_keys; uses Crt; var key: char; begin

writeln ('Нажмите одну из курсорных клавиш '); key:= readkey;

if ord (key) <> 0 then writeln ('обычная клавиша') else begin key:= readkey; case ord (key) of 77: writeln ('стрелка вправо');

  • 75: writeln ('стрелка влево');
  • 72: writeln ('стрелка вверх');
  • 80: writeln ('стрелка вниз'); else writeln ('не стрелка'); end; end; end
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >