УСЛОВНЫЙ ОПЕРАТОР

Условный оператор служит для ветвлений в программе и имеет следующий синтаксис:

if <условие> then <оператор1> else <оператор2>.

Здесь if, then, else - ключевые слова (перев. с англ. если, то, иначе соответственно);

<условие> - логическое выражение типа сравнения (например, a>b, c<=d, f=1), логическому типу посвящен следующий раздел пособия;

<оператор1> и <оператор2> - любой оператор Турбо-Паскаля. Оператор работает следующим образом: если условие истинно, то выполняется <оператор1> и управление передается на следующий за условным оператор; если условие ложно, то выполняется <оператор2> и управление передается на следующий за условным оператор. Таким образом, всегда выполняется один из двух операторов: либо из ветви then, либо из ветви else.

Кроме вышеприведенной формы условного оператора, существует сокращенная форма условного оператора, в которой отсутствует ветвь else:

if <условие> then <оператор1>.

Оператор работает следующим образом: если условие истинно, то выполняется <оператор1> и управление передается на следующий за условным оператор; если условие ложно, то управление сразу передается на следующий за условным оператор. Таким образом, в зависимости от условия <оператор1> либо выполняется, либо не выполняется.

Рассмотрим фрагменты схем алгоритмов и соответствующие им фрагменты программ.

 

  if a>b then max:=a else max:=b;
if k>0 then s:=s+k;
if a>b then if a>c then max:=a else max:=c;
     

 

if a>b then

if a>c then

max:=a

else max:=c

else

if b>c then

max:=b

else max:=c;

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

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

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