При роботі обчислюється умова, потім послідовно обчислюються значення кордонів діапазонів міток і значення умови перевіряється на відповідність складовим мітках. Повертається тип виразів - кордонів діапазонів міток приводиться до поверненню значенням умови. Якщо це неможливо видається повідомлення про помилку. Умова відповідає мітці якщо його значення виявляється в одному з перерахованих в мітці діапазонів. Значення перевіряється на "більше або дорівнює лівої межі" і на "менше або дорівнює правій межі". Якщо права межа не зазначена відбувається перевірка на рівність. Якщо умова відповідає мітці, обчислюється відповідні вираз, подальше виконання припиняється. Якщо відповідності з жодною міткою, не знайдено обчислюється вираз else. Значення, що повертаються всіх операторів, в тому числі оператора else наводяться до загального типу. Якщо це неможливо видається повідомлення про помилку.
<условие> - обчислюється вираз.
<левая_граница> - обчислюється вираз.
<правая_граница> - обчислюється вираз.
<выражение> - обчислюється вираз.
<выражение_else> - обчислюється вираз. Якщо вираз else не задано, то за замовчуванням генерується вираз, що повертає нульове значення, тип якого збігається з типом значення, що повертається інших операторів. Наприклад для рядка - порожній рядок, для числа - 0 і т.д.
Результат обчислення виразу, для якого складова мітка відповідає умові. Якщо відповідності з жодною міткою, не знайдено обчислюється вираз else.