Коли після ключових слів then і else знову використовуються умовні оператори, вони називаються вкладеними. Число вкладень може бути довільно, при цьому діє правило: else завжди відноситься до найближчого then. Часто вкладенням повних умовних операторів можна замінити використання складеного.
Пр. Визначити, в якій координатної чверті знаходиться точка з координатами (x, y), що не лежить на осях координат.
Варіант 1 - без використання вкладень
if (x> 0) and (y> 0) then p: = 1
else if (x<0) and (y>0) then p: = 2
else if (x<0) and (y<0) then p:=3
Варіант 2 - з вкладеннями
if x> 0 then begin
if y> 0 then p: = 1
if y> 0 then p: = 2
У першому фрагменті програмі перевіряється від 2 до 6 умов, у другому - завжди тільки 2 умови. Тут використання вкладень дало суттєву перевагу в продуктивності.
Пр 2. Обчислити значення y, рівне знаку числа x.
if x> 1 then y: = 1
else if x = 0 then y: = 0
if x> 1 then y: = 1
Тут в обох варіантах перевіряється не більше 2 умов, способи приблизно рівноцінні.
Оператор вибору. Для випадків, коли потрібно вибрати одного значення з кінцевого набору варіантів, оператор if зручніше замінювати оператором case:
case вираження of
Оператор виконується так само, як складової умовний оператор.
Вираз повинен мати порядковий тип (цілий або символьний). Елементи списку перераховуються через кому, ними можуть бути константи і діапазони значень того ж типу, що тип виразу. Діапазони вказуються у вигляді:
У діапазон входять всі значення від мінімального до максимального включно.
Пр. За номером місяця m визначити число днів d в ньому.
Пр. За символу c визначити і вивести, до якого класу символів він відноситься.
'A' .. 'Z', 'a' .. 'z': writeln ( 'Лат.буква');
'0' .. '9': writeln ( 'Цифра');
else writeln ( 'Інший символ');
Тут окремі діапазони для російських букв від "а" до "п" і від "р" до "я" пов'язані з тим, що між "п" і "р" в кодової таблиці DOS знаходиться ряд не-буквених символів (див. Додаток 1).
Якщо по гілці оператора case потрібно виконати декілька операторів, діє те ж правило, що для оператора if (гілка полягає в операторні дужки begin ... end;).