6. Условия. And и Or, больше >, меньше <, равно =, не равно <>
В операторах If часто используются логические операторы (And, Or, Not) и операторы отношения (>, >=, <, <=, =, <>), а также их сочетания.
Примеры операторов отношения:
Код: Выделить всё
a > b
edad < 65
Codigo$ = "2N3055"
Tecla$ <> "esc"
Операторы отношения:
- > больше
- < меньше
- >= больше или равно
- <= меньше или равно
- = равно
- <> не равно
Эти операторы мы уже знаем и многократно использовали. Кстати, логика таких выражений почти всегда допускает несколько вариантов записи, например эквивалентны:
Операторы отношения очень полезны, но во многих случаях требуются логические операторы, чтобы связать два или более условия. Например, нужно узнать, попадает ли число в диапазон от 10 до 100 включительно.
Как записать такое условие? Способов несколько, например:
Читается: «Если num больше или равно 10 И num меньше или равно 100, то…»
And (логическое «И») требует, чтобы ОБА сравнения были истинными. Можно составить таблицу из четырёх возможностей:
| num >= 10 | num <= 100 | РЕЗУЛЬТАТ С AND |
| ложь | ложь | ЛОЖЬ |
| ложь | истина | ЛОЖЬ |
| истина | ложь | ЛОЖЬ |
| истина | истина | ИСТИНА |
С And должны выполняться ВСЕ условия (в данном случае два), чтобы всё условие было истинным. Совсем иначе получается с
OR. Когда использовать
AND, а когда OR? Подскажут здравый смысл и опыт. Рассмотрим пример с OR.
Продолжаем с числами. Предположим, мы читаем файл и хотим включить те записи, у которых поле «Вес» меньше 125 или больше 500. Это требование само подсказывает решение: число не может быть одновременно меньше 125 и больше 500 — либо одно, либо другое. Поэтому использование OR очевидно.
Составное условие из двух подусловий, соединённых OR:
Читается: «Если Вес меньше 125 ИЛИ Вес больше 500, то…»
С точки зрения обратной логики, это исключает из выборки все записи, у которых поле «Вес» больше или равно 125 И меньше или равно 500.
Таблица истинности для этого If:
| Peso<125 | Peso>500 | РЕЗУЛЬТАТ С OR |
| ложь | ложь | ЛОЖЬ, вес между 125 и 500 |
| ложь | истина | ИСТИНА, вес > 500, не может быть < 125 |
| истина | ложь | ИСТИНА, вес < 125, не может быть > 500 |
| истина | истина | ИСТИНА, но этот случай невозможен: число не может быть одновременно < 125 и > 500, эта комбинация никогда не встретится, её игнорируем. |