Умовний оператор в ТП призначений для організації процесу обчислення в залежності від якоїсь певної умови.
IF < умова > THEN < оператор1 > ELSE < оператор2 >;
Під умовою розуміється логічне значення TRUE або FALSE , зображене константою, змінною або логічним виразом. Дія умовного оператора зводиться до виконання оператора1, якщо умова виконується., тобто подана значенням TRUE , або до виконання оператора2, якщо умова не виконується, тобто подана значенням FALSE .Таким чином, конструкція умовного оператора цілком відповідає базовій структурі “розвилка”. Головна ідея УО полягає в тому, щоб виконувалася одна із альтернатив, але ніколи не виконувалися обидві.
Приклад: Визначити max ( x,y ) :
IF x>y THEN max := x ELSE max := y ;
Оператори 1 та 2 можуть бути простими і складеними в залежності від того , скільки дій треба виконати відповідно до альтернатив THEN та ELSE. Якщо треба одночасно виконати не один, а два або цілу послідовність операторів, то їх об’єднують за допомогою операторних дужок в складений оператор. Складений оператор – це послідовність операторів, перед якою стоїть службове слово BEGIN , а після останнього оператора послідовності – службове слово END. Оператори в послідовності відокремлюються один від одного крапкою з комою , перед END вона може бути відсутня. Складений оператор може містити будь-яке число простих операторів, в тому числі один або жодного. Він допускає вкладеність , тобто може містити в середині себе інші складені оператори, при цьому внутрішній складений оператор повинен відкриватися пізніше , а закриватися раніше зовнішнього. Складений оператор – дуже важливе поняття в структурному програмуванні. В ТП всі управляючі структури не відрізняють простий та складений оператори: там , де стоїть простий оператор, може стояти і складений.
Приклад .Визначити max ( x, y ) та присвоїти змінній n значення 1 , якщо x>y , або 2 , якщо y>x.
IF x>y THEN BEGIN max:= x; n:=1 END ELSE BEGIN max:=y; n:=2 END ;
Умовний оператор може вживатися в скороченому вигляді , який відповідає спрощеній базовій структурі “розвилка”, де відсутня одна з гілок обчислень:
IF < ЛВ > THEN <оператор> ;
В такому скороченому УО у випадку невиконання умови , тобто коли ЛВ набуває значення FALSE , нічого не відбувається та управління передається на наступний за УО оператор .
Приклад . Визначити max( x,y ) можна за допомогою двох операторів присвоювання та скороченого УО таким чином :
max := y ;IF x>y THEN max:=x ;
Умовні оператори можуть бути вкладеними один в одного, тобто <оператор1> та <оператор2> можуть бути , в свою чергу, умовними операторами. При цьому діє правило: альтернатива ELSE вважається належною найближчому умовному оператору IF , який не має гілки ELSE.
Приклад 1. Розглянемо два УО:
IF <ЛВ1 > THEN IF <ЛВ2> THEN <A> ELSE <B> ;
IF <ЛВ1> THEN BEGIN IF <ЛВ2> THEN <A> END ELSE <B> ;
В першому випадку оператор А виконається , якщо обидва ЛВ наберуть значення TRUE , а оператор В виконається , якщо перший ЛВ набуде значення TRUE , а другий – значення FALSE .В другому випадку умови для виконання оператора А такі ж самі , а для виконання оператора В необхідно тільки , щоб перший ЛВ набув значення FALSE .Треба відзначити, що в першому випадку , якщо перший ЛВ набуде значення FALSE , взагалі жоден з операторів А та В не буде виконаний.
Приклад 2. Запрограмувати обчислення значення Y .

УО матиме вигляд:
IF X<A THEN Y:= EXP(X-A) ELSE
IF X>B THEN Y:= SQR(B*(X-A)) ELSE Y:= SQRT((B-A)/X) ;
Приклад 3. З трьох чисел A,B,C вибрати найбільше і присвоїти змінній N значення 1, якщо це A; 2, якщо це B , або 3, якщо найбільше число C.Скласти програму.
PROGRAM ABC;
{УМОВНИЙ ОПЕРАТОР }
VAR
A,B,C,MAX: REAL;
N : INTEGER;
BEGIN
WRITELN (‘ВВЕСТИ A,B,C’) ;
READ (A,B,C ) ;
WRITELN (‘A= ‘, A , ‘B= ‘ , B , ‘C= ‘ , C ) ;
IF A>B THEN BEGIN MAX:= A ; N:=1 END
ELSE BEGIN MAX:= B ; N:=2 END;
IF C>MAX THEN BEGIN MAX:= C; N:= 3 END;
WRITELN ( ‘MAX= ‘, MAX , ‘N= ‘, N )
END.