Команда DO WHILE ... ENDDO

Выполняет группу команд, входящих в условный цикл.

Синтаксис:

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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.