28600

Оператор выбора case

Доклад

Информатика, кибернетика и программирование

Условный оператор удобен в тех случаях, когда необходимо проверить 1-2-3 варианта. При большем числе получается слишком громоздкая и неудобная для восприятия конструкция из множества вложенных инструкций. Скажем, если требуется проверить 5 значений переменной x, то получим такую конструкцию:

Русский

2013-08-20

13.92 KB

1 чел.

Оператор выбора case

Условный оператор удобен в тех случаях, когда необходимо проверить 1-2-3 варианта. При большем числе получается слишком громоздкая и неудобная для восприятия конструкция из множества вложенных инструкций. Скажем, если требуется проверить 5 значений переменной x, то получим такую конструкцию:

if x = 1 then ; else if x = 2 then ; else if x = 3 then ; else if x = 4 then ; else if x = 5 then ;

Очевидно, что код получается слишком громоздким, и малоэффективным. В таких случаях на помощь приходит семафор - оператор множественного выбора case. Он состоит из выражения, являющегося селектором, списка вариантов, представленного константами или значениями, и необязательной части else. Таким образом, формат оператора case таков:

case [выражение-селектор] of   <значение 1>: <код для значения 1>;   <значение 2>: <код для значения 2>;   ...   <значение N>: <код для значения N>;   [else <код для непредусмотренных явно значений>;] end

Единственным ограничением семафора, в сравнении с условным оператором, является то, что в качестве селектора могут выступать лишь данные порядкового типа, скажем, целым числом или же символом. Впрочем, для подавляющего числа случаев этого достаточно. Например, приведенный выше вариант кода с 4 вложенными условными операторами, при помощи case можно оформить так:

case x of 1: ; 2: ; 3: ; 4: ; 5: ; end;

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

Инструкция выбора выполняется следующим образом: вначале, при необходимости, вычисляется значение селектора, затем производится последовательный обход вариантов на предмет совпадения с селектором. В случае совпадения, выполняется инструкция, предусмотренная для этого варианта, после чего выполнение оператора выбора заканчивается. Если же ни один из перечисленных вариантов не совпал со значением селектора (для нашего случая - если x меньше 1 или больше 5), то либо оператор завершается без каких-либо действий, либо, при наличии блока else, выполняются заданные в нем инструкции.

В качестве констант выбора могут выступать не только единичные значения, но и их список, разделенный запятыми, или же диапазоны, определенные границами из 2 констант, разделенных двумя точками. В таком случае мы можем объединить логически связанные значения в группы, для которых следует выполнить один и тот же код. Например, таким образом можно получить название времени года в зависимости от порядкового номера месяца (листинг 4.1).

Листинг 4.1. Использование оператора case

var month: integer; season: string; ... case month of 1,2,12: season := "зима"; 3..5: season := "весна"; 6..8: season := "лето"; 9..11: season := "осень"; else season := "других не знаем!"; end;

В данном случае, если переменная month имеет значения 1, 2 или 12, то переменной season присваивается значение "зима", если же значение переменной month окажется в диапазоне от 3 до 5 (включительно), то season получит значение "весна", и т.д.


 

А также другие работы, которые могут Вас заинтересовать

79072. Уголовное право Рима в древнейший период. Виды деликтов 19.71 KB
  Многие из таких частных деликтов известных Законам XII таблиц стали рассматриваться как преступления в последующем. преступления которые наказывались от имени римского народа а взыскания по ним шли не частным лицам а государству. К ним относились прежде всего преступления против республики. В зависимости от характера преступления смертная казнь принимала различные формы: отсечение головы утопление распятие сбрасывание с Тарпейской скалы и т.
79073. Формы гражданского процесса 28.39 KB
  Характерной особенностью римского гражданского процесса в течение республиканского периода и периода принципата было деление процесса на две стадии производства из которых первая называлась вторая judidum. Римская же первая стадия процесса приводила к окончанию дела только в случае признания иска ответчиком а такой вопрос как видно из открытых в 1933 году новых фрагментов Институций Гая прямо ставился истцом; требую чтобы ты сказал да или нет.Какими потребностями было вызвано деление римского процесса на две стадии и какие цели оно...
79074. Эмфитевзис и суперфиций. Сущность и причины образования этих институтов. Прекращение эмфитевзиса и суперфиция. Залог и его формы. Ипотека 27.26 KB
  Установление одного из этих двух прав на земельный участок дает право собственности на эту землю почти только номинальным; лишь после прекращения эмфитевзиса или суперфиция право собственности на данный участок получает реальное выражение. Как показывает термин emphyteusis от греческого emphyteuein насаждать этот институт перешел в римское право из Греции где наследственная аренда земли имела широкое применение эмфитевзис был издавна также в практике Египта и Карфагена.В содержание эмфитевзиса входит право пользоваться земельным...
79075. Безымянные контракты. Их характеристика. Типы безымянных контрактов. Виды пактов 32.41 KB
  сведены к четырем основным типам: 1 do ut des: я передаю тебе право собственности на вещь с тем чтобы ты передал мне право собственности на другую вещь; 2 do ut fcis: я передаю тебе право собственности на вещь с тем чтобы ты совершил известное действие оказал какието услуги и т.; 3 fcio ut des: я совершаю для тебя известное действие с тем чтобы ты передал мне право собственности на известную вещь; 4 fcio ut fcis: я совершаю для тебя известное действие с тем чтобы и ты совершил для меня какоето действие. При куплепродаже...
79077. Вербальные договоры. Стипуляция. Порядок заключения и содержание 25.9 KB
  Открытые в 1933 году новые фрагменты из Институций Гая доказывают что договор стипуляции был известен уже законам XII таблиц.Несмотря однако на все смягчения необходимых формальностей в классическом римском праве всетаки прочно охранялись некоторые черты стипуляции как формального контракта: присутствие договаривающхся сторон в одном месте устный вопрос кредитора и такой же устный ответ должника совпадающий по смыслу с вопросом. Обязательство возникшее из стипуляции было обязательством строгого права и потому подлежало строго...
79078. Виды деликтов и обязательства из них. Личная обида. Кража. Неправомерное повреждение имущества. Другие виды частных деликтов 26.1 KB
  Наиболее подходящий русский термин соответствующий furtum кража. Однако furtum не совпадало полностью с современным понятием кражи. Во-первых к категории furtum в Риме относились и те деликты которые в современном праве именуются кражей и те которые теперь называются присвоением растратой и т.
79079. Владение и право собственности. Владение и держание. Виды. Установление и прекращение владения. Преторские интердикты. Защита добросовестного владения 33.21 KB
  Факты с наступлением которых лицо приобретает право собственности называются способами приобретения права собственности modus cquirendi а те юридические факты в особенности сделки которые служат основанием для приобретения права собственности называются титулом приобретения titulus cquirendi.Способы приобретения права собственности делятся на первоначальные и производные. При первоначальном приобретении права собственности нет праводателя ограниченность правомочий которого могла отразиться на содержании права приобретателя.
79080. Деятельность римских юристов. Формы их деятельности. Значение римской юриспруденции для формирования и развития права. Сабиньянская и прокулянская школы юристов 21.39 KB
  Сабиньянская и прокулянская школы юристов. В произведениях Цицерона формы деятельности римских юристов характеризуются терминами respondere cvere gere а также scribere. Термином respondere обозначается консультационная работа римских юристов дача гражданам обращавшимся к юристам советов по возбуждавшим сомнение вопросам: cvere ограждение интересов данного гражданина при совершении сделок также путем совета не включать какоелибо невыгодное условие и т.