Часто виникає необхідність розгалуження програм не в двох, а в багатьох напрямках. Звичайно у цьому випадку можна використати умовний оператор EF, але такий засіб може бути дуже громіздким і ненаглядним. Зручніше використати оператор вибору (або варіанту).
Структура оператора CASE:
CASE <вираз> OF
<константа вибору 1>:<оператор 1>;
<константа вибору 2>:<оператор 2>;
<константа вибору n>:<оператор n>
else <оператор>
END;
Оператор CASE складається з <виразу> (селектора) і списку операторів, кожному з яких відповідає конкретне значення селектора. Тип селектора і тип константи вибору повинен співпадати. Селектором може бути вираз або змінна будь-якого простого дискретного типу, тобто INTEGER, CHAR, BOOLEAN, створеного Вами перелічуваного або інтервального типу. Селектор і константи вибору не можуть бути типу REAL, оскільки дійсне число не представлене в пам'яті машини дискретно.
Порядок виконання оператора CASE наступний:
1. Обчислюється <вираз> (селектор).
2. Значення селектора порівнюється з <константами вибору>.
Якщо селектор співпав з певною константою вибору,
виконується оператор, що стоїть за нею.
3. Якщо селектор не співпав з жодною константою вибору,
виконується оператор, що стоїть після слова OTHERWISE.
4. Після виконання вибраного варіанта управління передається
на службове слово END, тобто кінець оператора CASE .
Приклад: В залежності від значення цілої змінної І обчислити

CASE I OF
0: Y:= 0;
1: Y=sin(x);
2,4: Y=cos(x);
3: Y=LN(x);
ELSE Y=EXP(x)
END;
He треба плутати константу вибору з міткою. Оскільки мітки в програмі описуються в розділі LABEL, а константи вибору опису не потребують.
Слід пам'ятати , що в одному операторі CASE не може бути двох однакових констант вибору.