Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подготовка к экзамену по Делфи.docx
Скачиваний:
7
Добавлен:
21.04.2019
Размер:
141.62 Кб
Скачать

26. Условный оператор, его назначение, структура. Варианты условных операторов. Вложенные условные операторы. Примеры.

С помощью условного оператора происходит проверка заданного условия и в зависимости от полученного результата происходит выбор одного из двух действий. Условный оператор представляет средство ветвления алгоритмического процесса.

Структура условного оператора представляет собой следующий вид:

if условие then список операторов 1 else список операторов 2 ;

где if, then, else - зарезервированные слова, по русски означающие - если, то, иначе.

Условие выбора - это логическое выражение (в основном используются операторы сравнения).

список операторов 1 и список операторов 2 - любые операторы языка Delphi.  В состав списка операторов может входить один  оператор или несколько, тогда это должен быть составной оператор. Один из выборов может отсутствовать, (быть пустым). Обычно это выбор действий расположенный после слова else. В такой ситуации, при условии равном FALSE, управление передается операторам следующим сразу за условным оператором.

Алгоритм работы условного оператора имеет следующий вид. Первоначально вычисляется выражение условие. Получаем результат логического типа. Если результат равен TRUE, то выполняются операторы входящие в список операторов 1, а список операторов 2 пропускается. Если результат равен FALSE,  то происходит обратное действие - выполняются операторы входящие в список операторов 2, а список операторов 1 пропускается.

Еще важный момент перед словом else  не ставиться точка c запятой.

Давайте расположим на форме кнопку Button и компонент Label. Для кнопки напишем такой обработчик события:

procedure TForm1.Button1Click(Sender: TObject);

var

i : integer;

begin

i :=2;

if i = 1 then

begin

Label1.Caption := 'Переменная i  равна 1';

Form1.Color := clRed

end else

begin

Label1.Caption := 'Переменная i не равна 1';

Form1.Color := clGray

end

end;

Изменяя значение переменной i с 1 на двойку мы увидим работу условного оператора в действии. Как результат будет выбор цвета формы и название заголовка компонента label.

Если условие сложное и само в себе включает несколько условий, то их необходимо объединить путем организации вложений условных операторов или используя логические операторы and, or, xor, not.

В сложных логических выражениях отдельные части-условия необходимо заключать в скобки:

if (i  > y) and (j = 55) then ...

Запись без скобок будет ошибочной, так как компилятор воспримет его следущим образом:

if i > (y and j) = 55 then ...

 Список операторов 1 и список операторов 2 могут содержать любые операторы, в том числе содержать условные операторы. В свою очередь любой из вложенных может содержать в себе еще условные операторы. Бывает не у всех вложенных условных операторах имеется слово else. В этих случаях следует исходить из того, что else всегда ассоциируется с ближайшим к нему (сверху по тексту) словом if, которое еще не связано с else:

var

i, y, j, k : integer;

begin

// определение значений переменных i, y, j, k

if (i > y) and (j = 55) then

if  k > y then

k := y

else // относиться к if  k > y

y := k;

end;

С помощью комментария можно показывать к какому if относиться else. Это подсказка себе на будущее для компилятора она не имеет никакого значения. Писать вложенных друг в друга составные операторы следует с особой тщательностью, аккуратно, не допуская ошибок и неточностей.