Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КТП_н_посібник2.doc
Скачиваний:
11
Добавлен:
11.11.2019
Размер:
27.54 Mб
Скачать

5.3. Логічні оператори

Логічні оператори в мові Visual Basic використовуються для маніпулювання логічними значеннями – True (у числовому вираженні це 1) і False (у числовому вираженні це 0). У табл. 5.2 стисло описані логічні оператори, підтримувані мовою Visual Basic.

Таблиця 5.2

Допустимі логічні оператори мови Visual Basic

Оператор

Опис

And

Кон'юнкція (логічне І)

Or

Диз'юнкція (логічне АБО)

Not

Заперечення (логічне НЕМАЄ)

Xor

Виняток (що логічне виключає АБО)

Eqv

Логічна еквівалентність

Imp

Логічна імплікація

Оператор And позначає операцію кон'юнкції, результатом виконання якої буде значення True тоді й тільки тоді, коли обидва оператори мають це значення. У решті значень результатом виконання цієї операції буде значення False. Наприклад, вираз (3 > 2) And (4 > 3) має значення True, а вираз (3 > 6) And (4 > 3) має значення False.

Логічний оператор Or позначає операцію диз'юнкції, результатом виконання якої буде значення True, якщо принаймні один з операндів має значення True. Результат матиме значення False тоді й тільки тоді, коли обидва операнди мають це значення. Таким чином:

(3 > 5) Or (4 > 2) значення True.

(2 > 3) Or (2 > 4) значення False.

Логічний оператор Not позначає операцію логічного заперечення і має тільки один операнд. Результатом виконання цієї операції буде значення True, якщо операнд має значення False, і навпаки, результатом буде значення False, якщо операнд має значення True. Наприклад, вираз Not (5 > 3) має значення False, оскільки вираз в дужках має значення True.

Логічний оператор Xor позначає логічну операцію що “виключає АБО”, результатом виконання якої буде значення True (якщо операнди мають різні значення), і значення False, якщо обидва операнди мають значення True.

Логічний оператор Eqv позначає логічну операцію еквівалентності двох виразів, результатами виконання якої буде значення True, якщо обидва операнди мають значення True або обидва False, і значення False, якщо тільки один з операндів має значення False.

Логічний оператор Imp позначає логічну операцію імплікації (проходження) двох виразів, результатом виконання якої буде значення False, якщо перший операнд має значення True, а другий операнд має значення False, і значення True у всіх інших випадках.

5.4. Оператори порівняння

Оператори порівняння використовуються в мові Visual Basic для порівняння числових і рядкових значень змінних величин, констант і результатів обчислення виразу. Результатом виконання операції порівняння завжди буде значення типу Boolean: або True (істина), або False (неправда). У таблиці 5.3 описано оператори порівняння, що підтримуються мовою Visual Basic.

Таблиця 5.3

Оператори порівняння в мови Visual Basic

Оператор

Опис

=

Дорівнює

>

Більше

<

Менше

>=

Більше або дорівнює

<=

Менше або дорівнює

<>

Не дорівнює

Is

Порівняння двох операндів, що містять посилання на об'єкти

Like

Порівняння двох рядкових виразів

Якщо обидва операнди у виразі мають один і той самий тип даних, то в мові Visual Basic виконується їхнє просте порівняння. Якщо один або обидва операнди являють собою змінні величини типу Variant, то компілятор Visual Basic перетворить тип Variant у який-небудь сумісний тип даних, інакше на екран буде виведено повідомлення про помилку під час виконання програми.

Знаки операції порівняння можна використовувати як для чисел, так і для рядкових значень. Порівнюючи останні, компілятор Visual Basic послідовно зчитує окремі символи зліва направо, визначаючи старшинство в алфавітному порядку, а будь-яких інших символів відповідно до двійкового значення коду ASCII. При цьому буде визнано, що один рядок дорівнює іншому, якщо вони мають однакову довжину й містять одні й ті самі символи, розташовані в однаковому порядку. Результатом такого порівняння буде значення True. У разі одна із перерахованих умов не буде виконана, то результатом порівняння рядків буде значення False.

Мова Visual Basic має у своєму розпорядженні два способи порівняння символів різних регістрів:

Порівняння рядків у двійковому режимі (метод порівняння за умовчуванням). Порівнюючи рядкові дані цим методом, використовують дійсний двійковий еквівалент коду кожного символу. Букви верхнього регістра мають менший двійковий код, ні букви нижнього регістра. Наприклад, для букви “А” код символу верхнього регістра (А) менший від коду символу нижнього регістра (а) тобто“ a” > “A” True.

Порівняння рядків у текстовому режимі. Згідно з цим методом порівняння рядків виконується за абеткою, але без урахування регістра букв. Одже, в текстовому режимі рядок “ASD” дорівнює рядку “asd”. Для того щоб перейти в текстовий режим порівняння, необхідно на початку модуля перед оголошеннями змінних або процедур помістити оператор Option Compare Text.

Для порівняння виразів, які містять посилання на об'єкти, у мові Visual Basic використовується оператор порівняння Is. Результатом виконання оператора Is є значення True, якщо обидва вирази типу Object посилаються на один і той самий об'єкт, і значення False, якщо посилання стосується інших об’єктів, тобто obj1 Is obj2.

Оператор Like дозволяє порівнювати рядок із заданим шаблоном і може розглядати тільки два рядкових вирази. Синтаксис цього оператора такий:

StrNGU1 Like StrNGU2.

Тут StrNGU1 – будь-який рядковий вираз (порівнюваний рядок, у якому виконується пошук), а StrNGU2 – комбінація спеціальних символів, що визначає шаблон для порівняння. Перелік допустимих символів шаблону з їх коротким описом наведено в табл. 5.4.

Таблиця 5.4

Спеціальні символи шаблону для оператора Like

Символ шаблону

Чому відповідає

?

Одному будь-якому символу

*

Будь-якій кількості символів від 0 і більше

#

Будь-якій цифрі від 0 до 9

(List)

Списку (List) певних символів. Для позначення діапазону використовується знак дефіса (-)

(!List)

Будь-якому символу, що не входить у список (List)

Результат порівняння в великих (верхній регістр) і малих (нижній регістр) букв в операторі Like залежить від встановленого режиму Option Compare. Якщо задано двійкове порівняння рядків, то оператор Like розрізняє букви верхнього й нижнього регістрів. Якщо встановлено режим текстового порівняння, то оператор Like не реагує на значення регістрів.