Основы языка Visual FoxPro

         

Если Вы знакомы со структурным


Условный оператор позволяет выполнять тот или иной блок программы в зависимости от какого-то условия:

IF lExpression ELSE

ENDIF

lExpression любое логическое выражение. Если оно истинно, то выполняется "часть кода 1", иначе "часть кода 2". В VFP существует масса функций, результат которых является логическим и поэтому может использоваться в этой конструкции.

Циклы позволяют выполнить какую либо часть кода несколько раз. Соответственно, в VFP существуют несколько видов циклов:

Циклы с предусловием

Циклы перечисления

Циклы "для каждого"

Циклов с послесловием, таких как Паскалевский цикл repeat until, в VFP нет. Но, при желании, их можно легко реализовать. Циклы с предусловием это циклы, выполняющиеся до тех пор, пока условие выполнения истинно. Проверка условия происходит перед очередным циклом, отсюда и название.

Такой цикл строится такой конструкцией :

DO WHILE lExpression

ENDDO

Цикл перечисления это цикл, в котором происходит последовательное наращивание (или уменьшение) какого либо значения, то есть его перечисление.

Типичный цикл перечисления:

FOR I = nMin TO nMax STEP nStep

ENDFOR

В этом случае, происходит последовательное увеличение переменной цикла (в данном примере I) от минимального значения nMin, до максимального nMax, с шагом приращения nStep.

Циклы "для каждого" очень удобно использовать для последовательного просмотра массивов или коллекций (о них мы поговорим позже). В этом случае, произойдет выполнение операторов цикла для каждого элемента этого массива или коллекции:

Приведем два примера использования этого цикла. Первый пример создается массив и затем последовательно выводятся его элементы оператором (?) :

DIMENSION cMyArray(3)

cMyArray[1] = 'A'

cMyArray[2] = 'B'

cMyArray[3] = 'C'

FOR EACH cMyVar IN cMyArray

? cMyVar

ENDFOR

В следующем примере с помощью OLE Automation создается объект книги Excel и последовательно выводятся имена листов этой книги:

oExcel = CREATE("Excel.Application")

oExcel.Workbooks.ADD

FOR EACH oMyVar IN oExcel.sheets

? oMyVar.name

ENDFOR

Во всех циклах можно прервать выполнение цикла оператором EXIT или прекратить выполнение текущей итерации (перейти на следующую итерацию) с помощью команды LOOP.



Содержание раздела