Оператор цикла FOR Назад В начало Вперед

Оператор начинается ключевым словом for, за которым в круглых скобках располагаются оператор инициализации, условие продолжения цикла и оператор итерации, разделенные точкой с запятой.

<оператор-for> = for
  ( [<оператор-инициализации>] ;
	[<условие>] ;
	[<оператор-итерации>] )
  <тело-цикла>;

Оператор инициализации, условие, оператор итерации могут отсутствовать. Если отсутствуют оба оператора и условие, то цикл будет вечным:

<вечный-цикл> = for(; ;) <тело-цикла>;

<оператор-инициализации> - служит для присваивания начального значения переменной, элементу массива и так далее, объявленным до цикла.

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

<оператор-инициализации> = <оператор-присваивания>

<условие> - условие продолжения цикла.

Условие продолжения цикла может отсутствовать, вместо него ставится точка с запятой. Если условие отсутствует, то для выхода из цикла используется оператор break. Для выхода из цикла с одновременным выходом из процедуры или обработчика событий, в которые введен цикл, предназначен оператор exit.

<условие> = <логическое-выражение>

<оператор-итерации> - задает значение для следующей итерации цикла. В левой части оператора присваивания может стоять переменная, элемент массива и так далее, объявленные до цикла.

Цикл может иметь не больше одного оператора итерации. Оператор итерации может отсутствовать, вместо него ставится точка с запятой. В этом случае данные, использованные в цикле, войдут в новую итерацию с теми значениями, с которыми они вышли из предыдущей итерации.

<оператор-итерации> = <оператор-присваивания>

<тело-цикла> - оператор программы.

<тело-цикла> = <оператор-программы>

Алгоритм выполнения цикла следующий:

Если условие не может быть вычислено или условие приняло значение false к началу цикла, то цикл не будет иметь ни одной итерации.

Для выхода из цикла до момента его нормального завершения используется оператор break.

Для выхода из цикла с одновременным выходом из процедуры или обработчика событий, в которые введен цикл, предназначен оператор exit.

Для выхода из очередной итерации цикла до момента ее нормального завершения и перехода к следующей итерации используется оператор continue.

Примеры

Пример 1.

var aResult : integer;
var aTotalMoney : double;
aTotalMoney := 0;
for (aResult := modifier getFirst SalaryTable;
				aResult = tsOk;
				aResult := modifier getNext SalaryTable)
						aTotalMoney := aTotalMoney + SalaryTable.Salary;

Пример 2.

/* добавить в таблицу 100 записей, пронумерованных от 1 до 100 */
for (i := 1; i<=100; i := i+1)
	modifier insert MyTable set code = i;