Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование delphi.doc
Скачиваний:
806
Добавлен:
09.02.2015
Размер:
2.97 Mб
Скачать

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

              1. If условие then действие.

              2. If условие then действие1 else действие2.

Здесь условие – выражение логического типа; действие1, действие2 – отдельные операторы или операторы, сгруппированные вместе при помощи операторных скобок begin и end. Такой оператор называется составным.

Графически операторы условия изображены на рис. 2.1.

Замечание. Над потоками должны быть указаны значения условия, при котором выполняются действия (на рисунке это «истина» и «ложь»).

Для оператора первого типа, если выражение условие принимает значение true, выполняется действие, стоящее после ключевого слова then. Если же значение условие равно false, то действие не выполняется.

Пример

If X > Y then X := 5; – значение переменной Х станет равным 5 только в том случае, если выполняется условие X > Y, в противном случае значение Х останется прежним.

Для оператора второго типа, если условие принимает значение true, то выполняется действие1, стоящее после оператора true, при значении условия false выполняется действие2, стоящие после оператора else.

Пример

If X > Y then X := 5 else X := 3; – значение переменной Х станет равным 5 при условии X > Y, при невыполнении условия Х будет равно 3.

Замечания:

              1. Перед оператором else значок «точка с запятой» не ставится!

              2. В условном операторе выполняется только один оператор, стоящий после слов then или else. Если требуется выполнить несколько операторов, необходимо их поместить между операторными скобками begin и end.

Пример

Переменные X и Y должны получить значения 5 и 23 соответственно при выполнении условия А > 0 и обнуляются (получают значение 0), если A  0. Оператор условия будет выглядеть так:

If A > 0 then

begin

X := 5;

Y := 23;

end

else

begin

X := 0;

Y := 0;

end;

Операторы, следующие после then или else, в свою очередь также могут быть условными операторами.

  1. Условный оператор первого типа – If условие then действие. При этом:

  • если оператор действие является условным оператором первого типа (рис. 2.2), ему соответствует конструкция:

If условие1 then

If условие2 then действие

В этом случае оператор действие определяется однозначно;

  • если оператор действие – условный оператор второго типа, то справедлива конструкция:

If условие1 then

If условие2 then действие1

else действие2.

Возникает вопрос: какому оператору then соответствует else? (рис. 2.3). Для обеспечения однозначности в языке Паскаль принято соглашение о том, что каждому else соответствует предыдущий свободныйthen.

  1. Условный оператор второго типа – If условие then действие1 else действие2. Оператор действие1 – условный оператор первого типа, оператор действие2 не является условным оператором (рис. 2.4.). Получаем конструкцию:

If условие1 then

begin

If условие2 then действие1

end

else действие2.

Видно, что оператор действие1 необходимо заключить в операторные скобки, иначе придем к схеме на рис.2.3.

Рекомендации:

              1. Для упрощения чтения текста программы при описании условных операторов следует использовать лидирующие пробелы для выделения каждого раздела.

              2. Если возникают трудности в оценке порядка выполнения действий в условном операторе необходимо использовать операторные скобки.

Оператор выбора. Если при построении условного оператора известны большинство возможных значений условия, то необходимо использовать оператор выбора. В общем виде структура этого оператора следующая:

Case переменная of

Значение1 : Действие1;

ЗначениеN : ДействиеN;

else

ДействиеN1;

end;

где

Переменная – переменная перечисляемого типа (например: integer, char);

Значение1, …, ЗначениеNвозможные значения переменной;

Действие1, …, ДействиеNдействия, выполняемые при значении переменной, равном одному из значений Значение1, …, ЗначениеN;

ДействиеN1 – действие, выполняемое в случае, когда переменная не принимает ни одно из перечисленных значений (Значение1, …, ЗначениеN).

Структурная схема оператора выбора показана на рис. 2.5.

Также как и при использовании условного оператора, если Действие представляет собой несколько операторов, их нужно поместить в операторные скобки begin и end. Если при отсутствии значения переменной никакое действие не выполняется, схема оператора выбора будет следующей:

Case переменная of

Значение1 : Действие1;

ЗначениеN : ДействиеN;

end;

Замечание. Оператор Case всегда оканчивается оператором end.

Очень удобно использовать оператор выбора при анализе нажатия клавиш клавиатуры.

Пример

Пусть в разделе переменных описана переменная Ch типа сhar.

Case Ch of

‘W’ : Y := Y + 1;

‘X’ : Y := Y – 1;

end;

В примере анализируется переменная Ch. Если Ch содержит символ «W», то переменная Y увеличивается на 1; Если Ch содержит символ «X», то переменная Y уменьшается на 1.