28600

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

Доклад

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

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

Русский

2013-08-20

13.92 KB

0 чел.

Оператор выбора 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 получит значение "весна", и т.д.


 

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

15518. Реєстрове козацтво 16.67 KB
  Реєстрове козацтво Козацька старшина існувала у реєстровому козацькому війську що було створене у 1572 році. На чолі реєстрових козаків стояв гетьман якого обирали за погодженням з королівським урядом на загальній військовій раді. Першим гетьманом реєстрового війська
15519. Під владою Польщі. Зростання козацтва (друга пол. XVI - перша пол. XVII ст.) 19.53 KB
  Під владою Польщі. Зростання козацтва друга пол. XVI перша пол. XVII ст. антифеодальні виступи міщан. Між козаками селянами та міщанами уже сформувалися відносини спільності інтересів взаєморозуміння та взаємопідтримки. У 80х роках XVI ст. відбулося кілька локальних вист
15520. Колонізація після 1569 22.58 KB
  Наслідки Люблинської унії для України були величезні. Україна була розірвана: більша її частина перейшла до Польщі Галичина Холмщина Волинь Поділля Брацлавщина Київщина Підляшшя. За Великим Князівством Литовським залишилися білоруські землі по Вітебськ Оршу та Мс
15521. Конотопська битва або Соснівська битва (27 червня — 29 червня / 7 липня — 9 липня 1659 року) 21.53 KB
  Конотопська битва або Соснівська битва 27 червня 29 червня / 7 липня 9 липня 1659 року битва між військами Гетьмана Івана Виговського та Кримської Орди з одного боку і московським військом з іншого біля міста Конотопа сучасної Сумської області. Наслідки та значення Зв...
15522. Культура 16-17 століття 17.49 KB
  Розвиток української культури проходив в складних суперечливих умовах коли Україна знаходилась під владою іноземних держав і до середини XVII ст. не мала власної державності. Але І в цей час українська культура мала тісні взаємозв'язки з культурою Польщі. Росії. Чехії зазн...
15523. Культура Київської Русі 22.47 KB
  Культура Київської Русі Успіхи східних слов’ян у розвитку господарства об’єднання їх в єдину державу боротьба за незалежність сприяли розквіту ранньої української культури. Київська Русь відзначалася високим рівнем культурного процесу. На Русі було багато вмілих р...
15524. Ліквідація царизмом гетьманщини і Запорізької Січі. Втрата українським народом останніх залишків автономії 15.83 KB
  Ліквідація царизмом гетьманщини і Запорізької Січі. Втрата українським народом останніх залишків автономії З приходом до влади в Росії Катерини II 1762–1796 було завершено справу розпочату в Україні Петром I по остаточній ліквідації української автономії. Нова імпе
15525. Люблінська унія 12.33 KB
  На початку XVI ст. Велике князівство Литовське постало перед загрозою занепаду причини: поразка у війні з Москвою загроза з боку української знаті небезпека збоку татар на південних кордонах. Наслідком цього стало підписання Люблінської унії між Литвою і Польщею. У січні...
15526. Магдебурзьке право в Україні 19.79 KB
  Магдебурзьке право і його особливості в Україні Магдебурзьким правом називають один з різновидів прав міських общин які із Західної Європи поширювалися на українські землі починаючи з XIV ст. Його назва походить від назви міста ...