Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic 6.0~02.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.38 Mб
Скачать

Функція iIf

Замість блоку If..Then..Else можна скористатися конструкцією безпосереднього If, або IIf. Єдина відмінність полягає в тому, що IIf обчислює обидва вирази які повертаються. Розглянемо наступний фрагмент:

Function TasteIt (Food As String) As String

CheckIt = IIf(Food = "Гамбургер". "Ні, спасибі", "Смачно"!)

End Function

Значення другого і третього параметрів, "Немає, спасибі" і "Смачно"!, будуть вичислені незалежно від того, яке з них буде повернено функцією IIf.

Функція TasteIt() надзвичайно проста. Вона перевіряє, чи має змінна Food значення "Гамбургер", і якщо має - повертає рядок "Немає, спасибі". Інакше повертається рядок "Смачно"!

Як значення, функції, що повертається IIf, можуть вказуватися як константи, так і обчислювані вирази.

Оператор Select Case..End Select

Для ухвалення складніших рішень (особливо за наявності декількох умов) можна скористатися блоком Select Case..End Select. Його синтаксис простий:

Select Case x

Case Is =3

' Виконати деякі дії

Case Is > 17

‘ Виконати інші дії

Case Else.

‘ Дії для випадку, коли не виконано

‘ жодна з попередніх умов

End Select

Для кожного оператора Select Case в програмі має бути відповідний оператор End Select. Кількість секцій Case між Select Case і End Select може бути будь-ким.

Для кожної умови, що перевіряється, створюється окрема секція Case. Якщо ви хочете окремо обробити ситуацію, коли не виконується жодна з умов, створіть секцію Case Else. Вона багато в чому схожа на секцію Else оператора If..Then.

У операторові Select Case можна перевіряти строкові літерали, змінні і діапазони значень. Наприклад, наступний фрагмент перевіряє, що число належить інтервалу від 1 до 10:

Select Case guess

Case 1 to 10

Припущення вірне

Case Else

Припущення невірне

End Select

Секція Саsе 1 to 10 виконується для змінної guess, яка належить інтервалу від 1 до 10. Секція Case Else обробляє інші ситуації.

Оператор Select Case..End Select застосовується і для рядків. Наприклад, у вашій програмі може бути присутній наступний фрагмент:

Select Case x

Case Is = "3"

Виконати деякі дії

Case Is > "17"

Виконати інші дії

Case Else

Дії для випадку, коли не виконано

жодна з попередніх умов

End Select

Програмний код, що виконується при виконанні умови, знаходиться у відповідній секції Case. Секція Case може містити декілька команд (див. приклад з вгадуванням чисел). Зверніть увагу: для завершення секції Case не використовується оператор End. Стає зрозуміло, чому так важливо структурувати програмний код за допомогою символів табуляції і пропусків - це дозволяє візуально згрупувати взаємозв'язаний код. Такий підхід не лише спрощує читання програми, але і знижує вірогідність помилок.

При перевірці строкових значень слід пам'ятати про те, що користувач може вводити дані у верхньому, нижньому або змішаному регістрах. Отже, ваша програма повинна обробляти можливі ситуації. Для цього необхідно вирішити два завдання. По-перше, ви повинні видалити з рядка усі ведучі і завершуючі пропуски. Іноді користувач випадково вводить пропуски до або після даних. Щоб видалити їх, слід передати рядок функції Trim$(). По-друге, текст необхідно перетворити до одного регістра, верхнього або нижньому. Для цього можна скористатися функцією UCase$() або LCase$(,). Можливі варіанти виглядають так:

If Trim$(UCase$(txtInput.Text)) = "АДМІНІСТРАТОР" Then

‘ Виконати деякі дії

End If

If Trim$(LCase$(txtInput.Text)) = "адміністратор" Then

‘ Виконати деякі дії

End If

Обидва оператори If..Then призводять до одного результату. Зверніть увагу: рядок в правій частині умови повинен знаходитися в тому ж регістрі, до якого перетвориться вираження в лівій частині.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]