Вычисляет некоторый результат в зависимости от нескольких заданных условий.
ICASE( lCondition1, eResult1 [, lCondition2, eResult2] ... |
Параметры
- lCondition
-
Определяет Условное (логическое) выражение.
Если lCondition = False (.F.), функция ICASE( ) продолжает вычислять следующее логическое выражение (условие) и возвращает соответствующий, заданный результат eResult, когда данное условие = True (.T.). Если условное выражение lCondition = null (.NULL.), система Visual FoxPro отождествляет данное условие lCondition, как = False (.F.).
- eResult
-
Определяет вычисляемый Результат, возвращаемый данной функцией, когда соответствующее выражение lCondition = True (.T.).
- eOtherwiseResult
-
Содержит возвращаемый Результат в том случае, когда все заданные в параметрах функции условия = False (.F.).
Возвращаемое значение
ICASE( ) возвращает первое значениеи заданного параметра eResult, если условие lCondition = True (.T.).
Если все заданные условные выражения = False (.F.), ICASE( ) возвращает значение параметра eOtherwiseResult.
Если рассматриваемый параметр eOtherwiseResult отсутствует, и все логические условия вычисляются как = False (.F.), ICASE( ) возвращает значение = null (.NULL.).
Комментарии
Для данной функции вы обязательно должны указать не менее двух параметров ICASE( ). Если вы определяете нечетное количество параметров, то последний параметр рассматривается как значение параметра eOtherwiseResult.
Вы можете задавать до 100 пар параметров для функции ICASE( ), то есть до 200 (двухсот) параметров.
Если вы используете длинные выражения в качестве рассматриваемой функции ICASE( ), например, для определения некоторых Фильтров, для ключевых секций FOR или WHERE, проконтролируйте текущую установку функции SYS(3055) - уровня сложности вычисляемых выражений, иначе возникнет Ошибочная ситуация. Смотрите дополнительно раздел: SYS(3055) - FOR и WHERE, уровень сложности выражений.
Пример
Следующие примеры демонстрируют разнообразные Сценарии использования рассматриваемой функции ICASE( ) в целях вычисления задаваемых логических выражений и возврата соответствующих Результатов.
Следующий оператор отображает строку "First is true", так как первое выражение является истинным, 1+1=2 (True (.T.)).
![]() | |
---|---|
? ICASE(1+1=2,"First is true",1+1=3,"Second is false","None are true") |
Следующий оператор отображает строку "Second is true", так как первое условие = False (.F.), а вот второе условие = True (.T.) (1+2=3).
![]() | |
---|---|
? ICASE(1+2=2,"First is false",1+2=3,"Second is true","None are true") |
Следующий оператор отображает строку "None are true", то есть значение последнего параметра, так как все указанные условные выражения = False (.F.).
![]() | |
---|---|
? ICASE(1+2=2,"First is false",1+1=3,"Second is false","None are true") |