Оператор выбора CASE в Delphi Оператор выбора, который называется CASE, используется для выбора одного из нескольких направлений дальнейшего хода программы. Выбор последовательности инструкций осуществляется во время выполнения программы в зависимости от равенства значения переменной-селектора константе, указанной перед группой инструкций. В качестве переменной-селектора можно использовать переменную только перечислимого типа. Целое число (Integer) - перечислимый тип данных. Другим простым перечислимым типом данных является символьный тип (Char).
Синтаксис оператора CASE:
Code
case {переменная-селектор} of
{константа_1}: {инструкции 1}
{константа_2}: {инструкции 2}
{...}
else {инструкции, если ни одна константа не подошла}
end;
Работает оператор следующим образом: берётся значение переменной-селектора и последовательно сравнивается с каждой из констант. Если значения совпадают, то выполняются инструкции, указанные после данной константы. Если ни одна константа не совпала со значением переменной-селектора, но при этом указан блок else, то выполняются инструкции этого блока. Если блок else не указан, никаких команд выполнено не будет.
Обратите внимание, что после каждой константы ставится двоеточие (":").
Помимо одиночных констант можно указывать несколько констант через запятую, а также можно указывать диапазон, задав начальный и конечный элементы и разделив их двумя точками.
Пример:
Code
case a of
1,2,3,4,5: {...}
else {...}
end;
case a of
1..5: {...}
else {...}
end;
Оба представленных фрагмента кода сработают абсолютно одинаково, но во втором варианте запись констант и короче и удобнее.
Пример программы с использованием оператора выбора.
Создадим программу, которая будет запрашивать ввод числа от 1 до 12 и выводить название времени года, которому принадлежит месяц с указанным номером.
Интерфейс прост: поле ввода (Edit1) и кнопка (Button1).
Обработчик кнопки таков:
Code
procedure TForm1.Button1Click(Sender: TObject);
var Month: Integer;
begin
Month:=StrToInt(Edit1.Text);
case Month of
1,2,12: ShowMessage('Зима');
3..5: ShowMessage('Весна');
6..8: ShowMessage('Лето');
9..11: ShowMessage('Осень')
else ShowMessage('Число должно быть от 1 до 12.')
end
end;
Результат работы:
Заключение
Условный оператор CASE позволяет создавать ветвления в программах, т.е. выполнять различные действия в зависимости от заданного условия. Отличается он от оператора IF тем, что оператор IF используется для единственного выбора, а CASE - для множественного. При написании какой-либо сравнительно сложной программы без оператора CASE не обойтись.
Dmitrijan & delphi.int.ru
07.07.2010 03:25
Копирование элементов статьи без ссылки на автора - запрещено!