Конструкция IF
Конструкция IF применяется во многих языках программирования и отличается, как правило, только синтаксисом. В Visual FoxPro синтаксис следующий:
После IF ставится логическое выражение, которое требуется проверить.Если оно истинно, выполняются команды, следующие за условием. Ключевоеслово THEN практически никогда не используют. Кончается список команд, выполняемых при истинности условия, ключевым словом ENDIF, если альтернативного списка команд, выполняемого при несоблюдении условия, нет. Если припроверке условия выясняется, что оно ложно, выполняются команды, указанныепосле ключевого слова ELSE. Например, требуется, если в результате вычислений получилось положительное число, вывести на экран сообщение Положительное, а если отрицательное, - Отрицательное.
Можно использовать следующие операторы сравнения:
> = (равно);
> == (точное равенство строк);
> < (меньше);
> > (больше);
> о, #, != (не равно);
> <= (меньше или равно);
> >= (больше или равно).
Обратите внимание на оператор ==, действующий при сравнении строк.Если при сравнении строк поставить не двойной знак равенства, а обычныйодинарный, то сравнение будет происходить не целыми строками. Например:
При записи условия можно пользоваться логическими операторами NOT (логическое «не»), AND (логическое «и») и OR (логическое «или»). Например, требуется вывести на экран сообщение Положительное, если в результате вычислений получилось положительное число или 0, и Отрицательное, если врезультате вычислений получилось отрицательное число.
Для записи более сложных логических выражений можно пользоватьсяскобками.
В Visual FoxPro существуют несколько полезных функций для проверки значений переменных или полей.
EMPTY (спеременная I имя_поля>) - возвращает значение True (.Т.), еслизначение переменной или поля пустое. К пустым значениям относятся: длячисловых типов - значение 0, для символьных типов - строки без единого символа (" ”), строки, состоящие из пробелов, символов табуляции, символов перевода строки, символов окончания строки и любых их комбинаций. Следующий пример выводит сообщение, хранящееся в переменной lc_mes, если ононе пустое.
Конструкция IIF
Существует более компактный способ записи условного оператора, который врезультате проверки не выполняет группу команд, а просто возвращает то илииное значение. Такому оператору можно найти довольно широкое применение. Он выполнен в виде функции и называется IIF.
IIF(<Условие>, <Выражение1>, < Выражение2>)
При истинности условия возвращается первое выражение, если условиеложно - то второе. В выражениях можно использовать функции и переменныелюбых типов. Вот как может измениться приведенный выше пример с выводом на экран сообщения Положительное, если в результате вычислений получилось положительное число или 0, и Отрицательное, если в результате вычислений получилось отрицательное число, в случае использования IIF.
Функция IIF часто просто незаменима в отчетах и наклейках. Но об этоммы поговорим позже.