Выполняет группу команд, входящих в условный цикл.
Синтаксис:
DO WHILE lExpression Commands [LOOP] [EXIT] ENDDO
Параметры:
lExpression
Задает логическое выражение, значение которого определяет, будут ли выполняться команды, размещенные между DO WHILE и ENDDO. Пока значение lExpression остается "истиной" (.T.), команды этой группы будут выполняться.
Commands
Задает группу команд Visual FoxPro, которые следует выполнять, пока значением выражения lExpression остается "истина" (.T.).
LOOP
Возвращает управление непосредственно оператору DO WHILE. LOOP можно размещать в любом месте между DO WHILE и ENDDO.
EXIT
Передает управление из цикла DO WHILE первой команде, стоящей после ENDDO. EXIT можно размещать в любом месте между DO WHILE и ENDDO.
ENDDO
Обозначает конец оператора DO.
Комментарии:
Группа команд, расположенных между DO WHILE и ENDDO, выполняется, пока значением логического выражения lExpression остается "истина" (.T.). Каждый оператор DO WHILE должен иметь соответствующий ему оператор ENDDO.
После операторов DO WHILE и ENDDO в той же строке можно вставлять комментарии. Во время компиляции и выполнения программы комментарии игнорируются.
Пример:
* В следующем примере подсчитывается общий наличный запас * продуктов, которые стоят больше 20 долларов; при этом используется * цикл DO WHILE, работающий до наступления конца файла (EOF). Затем * происходит выход из цикла DO WHILE и итоговая сумма появляется на * экране. CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE products && Opens Products table SET TALK OFF gnStockTot = 0 DO WHILE .T. You can place comments here! IF EOF( ) EXIT ENDIF IF unit_price < 20 SKIP LOOP ENDIF gnStockTot = gnStockTot + in_stock SKIP ENDDO Or you can place comments here! CLEAR ? 'Total items in stock valued over 20 dollars:' ?? gnStockTot