Циклы

Синтаксис оператора цикла:

  1. Выполняет «последовательность инструкций» для каждого значения «переменной», входящего в «список значений». «Список значений» определяется переменной типа «STRING» со значениями, перечисленными через  запятую.
    FOR переменная IN список значений
    
    последовательность инструкций
    END FOR
  2. Выполняет последовательность инструкций для каждого значения переменной в диапазоне от «значение1» до «значение2» с шагом 1, в качестве которых могут выступать математические выражения. Если «значение2» < «значение1», цикл не обрабатывается.
    FOR переменная FROM значение1 TO значение2
    
    последовательность инструкций
    END FOR

Вложенность операторов цикла не ограничена. В операторе «END FOR» допускается только один пробел.

Пример:

FkcbSecsList = "HYDR,SBER,MSNG,LKOH,YUKO,RTKM"

FOR Sec IN FkcbSecsList
DCPos = DEPO_CURRENT_BALANCE(ROWNAME, FirmList, Sec, DefDepoAcc)
DCLim = DEPO_CURRENT_LIMIT(ROWNAME, FirmList, Sec, DefDepoAcc)
DOLim = DEPO_OPEN_LIMIT(ROWNAME, FirmList, Sec, DefDepoAcc)
SecPos = DCPos + DCLim - DOLim
SecPos = SecPos * GET_PARAM(ClassCode, Sec, "LAST") *GET_PARAM(ClassCode, Sec, "LOTSIZE")
DepoPos = DepoPos +ignore_negative(SecPos)
DealerMoney = DealerMoney + dealer(SecPos)
END FOR

Данный цикл перебирает все инструменты из списка инструментов «FkcbSecsList» и по каждому инструменту обрабатывает позицию по этому инструменту для текущего рассчитываемого клиента.

Для прерывания цикла до его окончания служит оператор «BREAK». Он прерывает выполнение оператора «FOR» и передает управление следующему за ним оператору.

Для передачи управления на следующую итерацию оператора «FOR» служит оператор «CONTINUE». В операторе «FOR» следующая итерация начинается вычислением выражения цикла оператора «FOR». После вычисления условного выражения в зависимости от его результатов происходит либо прекращение выполнения оператора либо выполнение его тела.