Для этих целей удобней использовать оператор выбора Case. С его помощью возможно делать выбор из необходимого количества вариантов. Структура в языке Delphi оператора Case имеет следующий вид:
Case Переменная of значение 1 : оператор 1; значение 2 : оператор 2; ---- значение N : оператор N; Else оператор; end;
Case, of, else, end - зарезервированные слова.
Переменная - может быть одним из стандартных типов: символьным типом, целым числом, перечисляемым типом... Вместо значения может стоять простой оператор.
значение N - произвольное значение, того же типа, что и переменная.
оператор N - любые операторы.
Работа оператора Case осуществляется следующим образом. Вначале если необходимо вычисляется значение переменной. Затем ищется соответствие переменной значению N. При равенстве происходит выполнение оператора N и оператор case завершает свою работу. Если совпадений не найдено то выполняется оператор расположенный после слова else. При отсутствии оператора else, когда нет соответствия оператор case завершит свою работу и будет выполнен следующий оператор.
title="proverka1" src="Img/proverka1.jpg" alt="вид учебной задачи" width="146" height="163" style="border: 1px solid rgb(221, 221, 221); margin-top: 0.4em; display: inline; float: left; margin-right: 1.625em; max-width: 97.5%; height: auto; width: auto; margin-bottom: 1.625em; padding: 6px;">Пример1
Для закрепления материала создадим такое приложение. На форме разместим компоненты: Edit, Lebal и Button.
В поле Edit мы будем заносить число и программа проанализировав будет давать ответ по средствам Label. При значении входящем в диапазон -128..-1 результат будет равен -1, 0 - 0, 1..127 - 1 и если число не является типом ShortInt результат будет равен десяти. Для этого вычисления запишем такой обработчик кнопки.
procedure TForm1.Button1Click(Sender: TObject); var I : Integer; Rez:Shortint; begin I := StrToInt(Edit1.text); case I of -128..-1 : Rez := -1; 1..127 : Rez := 1; 0 : Rez := 0; Else Rez := 10; end; Label1.Caption := IntToStr(Rez); end;
Пример 2.
Создадим программу, которая будет запрашивать ввод числа от 1 до 12 и выводить название времени года, которому принадлежит месяц с указанным номером.
Интерфейс прост: поле ввода (Edit1) и кнопка (Button1).
Обработчик кнопки таков:
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;
Результат работы: