Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Then
//Событие возникло в ответ на установку флажка, выполняем
//соответствующие действия
Else
//Событие возникло в ответ на снятие флажка, выполняем
//соответствующие действия
End;
1.6 Вложенный условный оператор. В ветках then и else условного оператора могут присутствовать любые операторы, в том числе условные, таким образом мы получаем вложенные условные операторы. Уровень вложенности практически не ограничен.
Примеры вложенных условных операторов:
If a>b
Then
begin
A:=3;
End; |
Здесь и далее внешние и внутренние условные операторы выделены разными цветами.
If a>b
Then
begin
A:=3;
End Else
|
!!! Иногда (если не использовать операторные скобки begin-end) не всегда понятно, к какому if какой else относится, например:
If a>b then if c<d then a:=3 else a:=7;
Здесь непонятно, к какому if, внешнему или внутреннему, относится else. По принятому соглашению в таких случаях считается, что else относится к ближайшему if, т.е. к внутреннему.
1.6 Оператор выбора. Иногда в программе требуется организовать множественный выбор, это можно сделать с помощью оператора case. Синтаксис оператора case:
а) полная форма
case выражение-селектор of
список_значений_1: оператор_1;
список_значений_2: оператор_2;
список_значений_3: оператор_3;
…
список_значений_n: оператор_n;
else список_значений_n+1: оператор1;
End
!!! Здесь перед else нужно ставить точку с запятой.
Тип выражения-селектора и значений может быть целым, не может быть вещественным. В зависимости от значения выражения-селектора будет выполняться соответствующая ветка оператора case, если значение выражения-селектора не совпадет ни с одним из значений ни одной из ветвей, то будет выполняться ветка else. С писок_значений – это список через запятую целых констант и/или диапазонов, например:
1, 2, 8..11, 10+12: // в этот список значений входят числа 1, 2, 8, 9, 10, 11, 22
!!! Значения в списках не должны повторяться.
б) сокращенная форма
case выражение-селектор of
список_значений_1: оператор_1;
список_значений_2: оператор_2;
список_значений_3: оператор_3;
…
список_значений_n: оператор_n;
End
Здесь также в зависимости от значения выражения-селектора будет выполняться соответствующая ветка оператора case, но если значение выражения-селектора не совпадет ни с одним из значений ни одной из ветвей, то сразу же будет выполняться следующий за case оператор.
Если мы хотим, чтобы в какой-либо из веток выполнялось бы более одного оператора, то нужно использовать операторные скобки begin-end.
Примеры операторов case:
Case d+1 of
1, 2, 12: Label1.Caption:=’Зима’;
3..5: Label1.Caption:=’Весна’;
6..8: Label1.Caption:=’Лето’;
9..11: Label1.Caption:=’Осень’;
End;
Если перед выполнением оператора case переменная d будет принимать значение 3, то значение выражения-селектора d+1 будет равно 4, это число попадает в диапазон 3..5, в результате будет выполняться подкрашенная ветка. Если перед выполнением оператора case переменная d будет принимать значение 30, то значение выражения-селектора d+1 будет равно 31, это число не совпадает ни с одним из значений ни одной из ветвей, поэтому сразу произойдет выход из оператора case.
Case d+1 of
1, 2, 12: Label1.Caption:=’Зима’;
3..5: Label1.Caption:=’Весна’;
6..8: Label1.Caption:=’Лето’;
9..11: Label1.Caption:=’Осень’;
Else Label1.Caption:=’Ошибка’;
End;
Если перед выполнением оператора case переменная d будет принимать значение 30, то значение выражения-селектора d+1 будет равно 31, в результате будет выполнена ветка else.
Case d+1 of
1, 2, 12: begin Label1.Caption:=’Зима’; Form1.Color:=clWhite; end;
3..5: begin Label1.Caption:=’Весна’; Form1.Color:=clGreen; end;
6..8: begin Label1.Caption:=’Лето’; Form1.Color:=clBlue; end;
9..11: begin Label1.Caption:=’Осень’; Form1.Color:=clYellow; end;
Else begin Label1.Caption:=’Ошибка’; Form1.Color:=clRed; end;
End;
Здесь в зависимости от времени года форма подкрасится в соответствующий цвет.
Дата публикования: 2014-11-19; Прочитано: 223 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!