Циклы
Формат:
WHILE <Логическая переменная> DO; BEGIN;
<Выражение1>;
.
.
<ВыражениеN>;
END;
<Логическая переменная> - см. «ЛОГИЧЕСКАЯ ПЕРЕМЕННАЯ»;
<Выражение> - оператор или конструкция.
Пример:
ЦИКЛ=5<10;
ПЕР=1;
WHILE ЦИКЛ DO;
BEGIN;
ЦИКЛ=5>ПЕР;
ПЕР=ПЕР+1;
END;
Пример вызова
{ ОБХОД МЕСЯЦА ПО ДНЯМ }
ЗАРПЛАТА = 0;
{ Подготовка цикла: }
;;ТЕКУЩИЙ_ДЕНЬ = ИЗМЕНЕНИЕДАТЫ(ДАТА_НАЧ,1,0); // С версии 12.2: ТЕКУЩИЙ_ДЕНЬ = ДАТА(ДАТА_НАЧ);
;;ПЕРИОД_ОКОНЧЕН = СРАВНИТЬДАТЫ(ТЕКУЩИЙ_ДЕНЬ,ДАТА_ОКОНЧ);
;;ЦИКЛ_РАБОТАЕТ = ПЕРИОД_ОКОНЧЕН <= 0;
while ЦИКЛ_РАБОТАЕТ do;
begin;
{ Бизнес-логика цикла: }
;;СУММА = 0;
;;ЧАСОВ = ПЛАНЧАС(ДОКТ,ТЕКУЩИЙ_ДЕНЬ,ТЕКУЩИЙ_ДЕНЬ,'Б');
;;СМЕНА_6_ЧАСОВ = ЧАСОВ = 6;
if СМЕНА_6_ЧАСОВ then;
begin;
;;СУММА = 1000;
end;
;;ЗАРПЛАТА = ЗАРПЛАТА + СУММА;
;;ПЕЧАТЬ(ТЕКУЩИЙ_ДЕНЬ, '~', ЧАСОВ, 'час.', '', СУММА, '~руб.');
{ Коррекция цикла: }
;;ТЕКУЩИЙ_ДЕНЬ = ИЗМЕНЕНИЕДАТЫ(ТЕКУЩИЙ_ДЕНЬ,1,1);
;;ПЕРИОД_ОКОНЧЕН = СРАВНИТЬДАТЫ(ТЕКУЩИЙ_ДЕНЬ,ДАТА_ОКОНЧ);
;;ЦИКЛ_РАБОТАЕТ = ПЕРИОД_ОКОНЧЕН <= 0;
end;
;;ПЕЧАТЬ('ИТОГО:', '~', ЗАРПЛАТА, '~руб.');