Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lecton.DOC
Скачиваний:
4
Добавлен:
15.04.2019
Размер:
980.99 Кб
Скачать

5.2.20. Оператор выбора

Во многих языках программирования, в том числе и в Basic, име­ется еще одна разновидность условного оператора, именуемая опера­тором выбора. Этот оператор является составным и задает раз­лич­ные дей­ст­вия в за­ви­си­мо­сти от зна­че­ния ка­кого-то од­ного выражения. Опе­ра­тор вы­бо­ра со­стоит как ми­ни­мум из че­ты­рех строк: из на­чаль­ной стро­ки с тести­руе­мым выражением тестВыр; за­вер­шаю­щей стро­ки ви­да "end   select" и рас­по­ло­жен­ной ме­ж­ду ни­ми груп­пы аль­тер­на­тив, за­даю­щих ус­ло­вия вы­пол­не­ния и выполняемые дей­ст­вия:

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

select  case  тестВыр

case      спи­сок1

      Груп­паОпе­ра­то­ров1

case      спи­сок2

      Груп­паОпе­ра­то­ров2

case     ---"---"---"---"---

     ---"---"---"---"---

case     спи­сокN

      Груп­паОпе­ра­то­ровN

end  select

Эк­ви­ва­лент­ный ему ус­лов­ный опе­ра­тор

if ус­ло­виеЗа­дан­ноеВ(спи­сок1then

      Груп­паОпе­ра­то­ров1

elseif  ус­л-е­За­д-но­еВ(спи­сок2) then

      Груп­паОпе­ра­то­ров2

elseif  ус­л-еЗа­д-­ноеВ(--"--"--)  then

      ---"---"---"---"---"---"---

elseif  ус­л-е­За­д-­о­еВ(спи­сокNthen

      Груп­паОпе­ра­то­ровN

end  if

Ка­ж­дая из аль­тер­на­тив со­сто­ит как ми­ни­мум из двух строк: из стро­ки со спи­ском, за­даю­щим ус­ло­вие вы­пол­ни­мо­сти дан­ной аль­тер­на­ти­вы, и од­ной или не­сколь­ких строк, за­даю­щих контролируемую этим списком Груп­пуО­пе­ра­то­ров:

      case       спи­сок

            Груп­паОпе­ра­то­ров

Здесь используются следующие зарезервированные слова: select и case, что в переводе с английского означает соответственно: ото­брать и случай. Словосочетания select  case и end  select запи­сывают­ся через один пробел.

Оп­ре­де­ляю­щий аль­тер­на­ти­ву спи­сок мо­жет иметь один из пяти ви­дов:

Вид спи­ска зна­че­ний, раз­де­лен­ных за­пя­ты­ми:

      арифВы­раж1, арифВы­раж2,..., арифВы­ражM

за­даю­щий ус­ло­вие ви­да

      тестВырарифВы­раж1  or   тестВырарифВыраж2    or    .........  or   тестВырарифВы­ражM

На­при­мер:      case   1,  2,   A*6

Вид срав­не­ния:

      is      опе­ра­цияCравнения      арифВы­раж

за­даю­щий ус­ло­вие ви­да

      тестВыр опе­ра­цияCравнения        арифВы­раж

Здесь опе­ра­цияCравнения  есть од­на из (=, <, >, >=, <=, <>).

На­при­мер:      case   is  >= 6*T

Вид диа­па­зо­на зна­че­ний:

      арифВы­раж1     to   арифВы­раж2  

за­даю­щий ус­ло­вие ви­да

      тестВыр >= арифВы­раж1 and тестВыр <= арифВы­раж2       

На­при­мер:            case   3 to   5.1

Вид спи­ска из зна­че­ний, сравнений, диапазонов (через за­пя­тую),

за­даю­щий ус­ло­вие ви­да

      условие1  or   условие2   or    .........  or   условиеM

На­при­мер:      case   1,  2,  is >=  6*T, A*6, 3 to   5.1

      else

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

Дополнительно используемые в списках зарезервированные слова is и to оз­начают соответственно есть и до.

Например, нижеследующая программа иллюстрирует применение опера­тора выбора для выдачи фамилии сотрудника отдела по его но­меру.

DIM F AS STRING, N AS INTEGER

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]