Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_VB_Палагута.doc
Скачиваний:
2
Добавлен:
14.11.2019
Размер:
15.15 Mб
Скачать

2.1.2 Оператор варіанти Select Case

Оператор Select Case подібно оператору If здійснює розгалуження, але при цьому дозволяє організувати розгалуження відразу по декількох напрямках.

Загальна форма оператора:

Select Case X

Case <значення1 або віраз1>

ділянка програми, що виконується, якщо Х = значення1 або выраз1

Case <значення2 або віраз2>

ділянка програми, що виконується, якщо Х = значення2 або выраз2

. . .

Case <значенняN або віразN>

ділянка програми, що виконується, якщо Х = значенняN або выразN

Case Else

ділянка програми, що виконується, якщо жодна з умов не відповідає

фактичному значенню Х

End Select

Виконання оператору Select Case залежить від значення змінної Х – змінної варіанти. У першій гілці обчислюється значення виразу1, якщо він є в операторі, результат або значення1 порівнюється з фактичним значенням змінної Х. Якщо в наслідок порівняння отримано значення “істина”, виконуються оператори, які йдуть після рядка Case. Коли отримано значення “брехня”, обчислюється значення виразу2, змінна Х порівнюється з отриманим результатом або значенням2, якщо значення рівні, виконується друга гілка і т.д. Гілка Case Else в операторі не обов'язкова, виконується, якщо жодна з умов не відповідає фактичному значенню Х.

Приклад застосування оператора Select Case

Щоб розглянути використання оператора Select Case на прикладі потрібно доробити програму, створену в п.2.1.1. Після редагування програма повинна включати засоби аналізу клавіші, натиснутої при введенні даних у поле txtS (Сума нарахованої заробітної плати). Припустимим вважається натискання спеціальних клавіш (наприклад, клавіш керування курсором, Del, Home), клавіші Backspace, десяткової крапки, цифр від 0 до 9. У форму необхідно помістити ще один елемент - етикетку lblMesKey для виведення повідомлення у випадку натискання неприпустимої клавіші. Після натискання будь-якої клавіші в текстовому полі, якому відповідає подія KeyPress, потрібно виконати аналіз натиснутої клавіші. Якщо натиснута неприпустима клавіша, то видається повідомлення про помилку і вміст текстового поля знищується, у противному випадку ніяких дій не виконується. Аналіз натиснутої клавіші виконується за допомогою цілої числової змінної KeyAscii. Через цю змінну в момент натискання (подія KeyPress) процедурі, яка відповідає події, передається значення ASCII-коду натиснутої клавіші. Процедура повинна перевіряти символ, що вводиться, на припустимість. Список припустимих у процедурах кодів наведено в таблиці:

Значення змінної KeyAscii

Пояснення

0

Спеціальні клавіші

8

Backspace

46

Десяткова крапка

48. .57

Цифри від 0 до 9

На етапі візуального програмування потрібно змінити ім'я форми, помістити у форму додатковий елемент - етикетку lblMesKey.

Рисунок 2.3 - Вікно програми - приклада використання оператора Select Case

До коду програми потрібно додати процедуру, яка подана в таблиці.

Дані в рядку коду

Коментар

Private Sub txtS_KeyPress (KeyAscii As Integer)

Процедура, що виконується у випадку натискання будь-якої клавіші в полі txtS для введення нарахованої суми. Для створення процедури потрібно виконати подвійне клацання лівою кнопкою миші на текстовому полі.

lblMesKey.Caption = " "

Властивості Caption етикетки lblMesKey (для виведення повідомлення про помилку) привласнюється значення ““ (порожній рядок).

Select Case KeyAscii

Початок оператора Select Case, що реалізує розгалуження виконання програми в залежності від значення стандартної змінної KeyAscii

Case 0, 8, 46, 48 To 57

У тому випадку, якщо змінна KeyAscii дорівнює 0, 8 або 46, або знаходиться в діапазоні від 48 до 57 ніяких дій не виконується.

'Припустиме значення

Рядок коментарю, який введено для зручності читання коду програми.

Case Else

інакше, коли жодна з умов не відповідає значенню змінної KeyAscii виконуються такі дії

'Неприпустиме значення

lblMesKey.Caption = "Натиснута неприпустима клавіша"

Властивості Caption етикетки lblMesKey привласнюється значення "Натиснута неприпустима клавіша".

txtS.Text = " "

Властивості Text текстового поля txtS прив-ласнюється значення ““ (порожній рядок).

KeyAscii = 0

Змінної KeyAscii присвоюється значення 0.

End Select

Завершення оператора Select Case.

End Sub

Завершення процедури txtS_KeyPress