Інструкція case

У попередньому прикладі, у програмі контролю ваги, множинний вибір був реалізований за допомогою вкладених одна в одну інструкцій if. Такий підхід не завжди зручний, особливо в тому випадку, якщо кількість варіантів ходу програми велика.

У мові Delphi є інструкція case, що дозволяє ефективно реалізувати множинний вибір. Загалом вона записується так:

caseСелектор of список1:

  • Селектор - вираз, значення якого визначає подальший хід виконання програми (тобто послідовність інструкцій, яка буде виконана);
  • Список N – список констант. Якщо константи є діапазоном чисел, то замість списку можна вказати першу та останню константу діапазону, розділивши їх двома точками. Наприклад, список 1, 2, 3, 4, 5, 6 може бути замінений діапазоном 1..6.

Виконується інструкція case в такий спосіб:

1. Спочатку обчислюється значення виразу-селектора.

2. Значення виразу-селектора послідовно порівнюється з константами зі списків констант.

3. Якщо значення виразу збігається з константою зі списку, виконується відповідна цьому списку група інструкцій. На цьому виконання інструкції сасе завершується.

4. Якщо значення виразу-селектора не збігається з жодною константою зі всіх списків, то виконується послідовність інструкцій, що йде за else.

Синтаксис інструкції case дозволяє не писати else та відповідну послідовність інструкцій. У цьому випадку, якщо значення виразу не збігається з жодною константою зі всіх списків, то виконується наступна за інструкцією програми.

На рис. 2.7 наведено алгоритм, реалізований інструкцією case.

case

Мал. 2.7.Алгоритм, реалізований інструкцією case Нижче наведено приклади інструкції case.

1,2,3,4,5: day:='Робочий день. ';

elseday:='Робочий день.';

Як приклад використання інструкції case розглянемо програму, яка перераховує вагу з фунтів кілограми. Програма враховує, що у різних країнах фунт "важить" по-різному. Наприклад, в Україні фунт дорівнює 409,5 грамів, в Англії — 453,592 грама, а в Німеччині, Данії та Ісландії фунт важить 500 грамів.

У діалоговому вікні програми, зображеному на рис. 2.8, для вибору країни використовується списокКраїна.

інструкція

інструкція

Мал. 2.8.Діалогове вікно програми Приклад використання case

Для вибору назви країни використовується список компонент ListBox. Значок компонента ListBox знаходиться на вкладціStandard(рис. 2.9). Додається список до форми програми так само, як і інші компоненти, наприклад командна кнопка або поле редагування. У табл. 2.5 наведено властивості компонента ListBox.

case

Мал. 2.9.Компонент ListBox

Таблиця2.5.Властивості компонента ListBox