изложение на случай
В предишния пример, в програмата за контрол на теглото, множественият избор беше реализиран с помощта на вложени изрази if. Този подход не винаги е удобен, особено ако броят на програмните опции е голям.
Delphi има оператор за случай, който ви позволява ефективно да реализирате множествена селекция. Най-общо се изписва по следния начин:
случайСелектор на списък1:
- Селекторът е израз, чиято стойност определя по-нататъшния ход на изпълнение на програмата (т.е. последователността от инструкции, които ще бъдат изпълнени);
- Списък N е списък от константи. Ако константите са диапазон от числа, тогава вместо списък можете да посочите първата и последната константа от диапазона, като ги разделите с две точки. Например списъкът 1, 2, 3, 4, 5, 6 може да бъде заменен от диапазона 1..6.
Операторът case се изпълнява, както следва:
1. Първо се оценява стойността на израза на селектора.
2. Стойността на селекторния израз се сравнява последователно с константите от списъците с константи.
3. Ако стойността на израза съвпада с константа от списъка, тогава се изпълнява групата инструкции, съответстващи на този списък. Това завършва изпълнението на извлечението на случая.
4. Ако стойността на израза за селектор не съвпада с никоя от константите от всички списъци, тогава се изпълнява последователността от инструкции, следваща else.
Синтаксисът на оператора case ви позволява да не пишете else и съответната последователност от оператори. В този случай, ако стойността на израза не съвпада с никоя от константите от всички списъци, тогава се изпълнява програмният оператор, следващ случая.
На фиг. 2.7 показва алгоритъма, реализиран от оператора case.
Фиг. 2.7.Алгоритъм, реализиран от оператора case По-долу са дадени примери за оператора case.
1,2,3,4,5: day:='Работен ден. ';
elseday:='Ден от седмицата.';
Като пример за използване на оператора case, помислете за програма, която преобразува теглото от паундове в килограми. Програмата взема предвид, че паундът "тежи" различно в различните страни. Така например в България един паунд е 409,5 грама, в Англия е 453,592 грама, а в Германия, Дания и Исландия един паунд тежи 500 грама.
В диалоговия прозорец на програмата, показан на фиг. 2.8, списъкътСтрана.се използва за избор на държава
Фиг. 2.8.Диалогов прозорец на програмата Пример за използване на случай
За избор на името на държавата се използва списък – компонента ListBox. Иконата на компонента ListBox се намира в разделаСтандартен(фиг. 2.9). Списъкът се добавя към формуляра за кандидатстване по същия начин като другите компоненти, като команден бутон или поле за редактиране. В табл. 2.5 показва свойствата на компонента ListBox.
Фиг. 2.9.ListBox Компонент
Таблица2.5.ListBox свойства на компонента