Условие
При записи условий следует обратить особое внимание на то, что операнды условия должны быть одного типа или, если тип операндов разный, то тип одного из операндов может быть приведен к типу другого операнда. Например, если переменная Key объявлена как integer, то условие:
Key = Chr(13)
Синтаксически неверное, т. к. значение возвращаемое функцией Chr имеет тип char (символьный).
Во время трансляции программы при обнаружении неверного условия компилятор выводит сообщение: incompatible types (несовместимые типы).
Из простых условий при помощи логических операторов: and – "логическое И", or – "логическое ИЛИ" и not – "отрицание" можно строить сложные условия.
В общем виде сложное условие записывается следующим образом:
условие1 оператор условие2
Где:
- условие1 и условие2 – простые условия (выражения логического типа);
- оператор – оператор and или or.
Например:
(ch >= '0') and (ch <= '9') (day = 7) or (day = 6) (Forml.Editl.Text <> ' ') or (Forml.Edit2.Text <> '') Forml.CheckBoxl.Checked and (Forml.Editl.Text <> '')
Результат выполнения логических операторов and, or и not представлен в табл. 2.2.
Таблица 2.2. Выполнение логических операций.
Op1 | Op2 | Opt and Op2 | Op1 or Op2 | not Op1 |
---|---|---|---|---|
False | False | False | False | True |
False | True | False | True | True |
True | False | False | True | False |
True | True | True | True | False |
При записи сложных условий важно учитывать то, что логические операторы имеют более высокий приоритет, чем операторы сравнения, и поэтому простые условия следует заключать в скобки.
Например, пусть условие предоставления скидки сформулировано следующим образом: "Скидка предоставляется, если сумма покупки превышает 100 руб. и день покупки – воскресенье", Если день недели обозначен как переменная Day целого типа, и равенство ее значения семи соответствует воскресенью, то условие предоставления скидки можно записать:
(Summa > 100) <strong>and</strong> (Day = 7)
Если условие предоставления скидки дополнить тем, что скидка предоставляется в любой день, если сумма покупки превышает 500 руб., то условие можно записать:
((Summa > 100) and (Day =7)) or (Summa > 500)