Язык процедур 2-REXX для OS-2


ITERATE


Инструкция ITERATE предназначена для изменения естественного потока инструкций внутри повторяющегося цикла DO (т.е. любой конструкции DO, кроме простых циклов DO).

Выполнение группы инструкций прекращается и управление передается инструкции DO, как если бы встретилось предложение END. Управляющая переменная (если она существует) наращивается и проверяется как обычно, и выполнение группы инструкций возобновляется, если только цикл не завершится по инициативе инструкции DO.

Если имя не указано, то инструкция ITERATE будет отноcиться к самому внутреннему активному повторяющемуся циклу. Если имя задано, то оно должно быть именем управляющей переменной текущего активного цикла, который может быть самым внутренним циклом; к этому циклу и будет применяться инструкция ITERATE. Любой активный цикл, вложенный в цикл, выбранный для итераций, завершается (как если бы встретилась инструкция LEAVE).

Пример: do i=1 to 4 if i=2 then iterate say i end /* Будут выведены числа: 1, 3, 4 */

Примечания:

  1. Если указано имя, то оно должно совпадать с именем в инструкции DO во всех отношениях, кроме регистра клавиатуры (строчные или прописные буквы). При этом, когда выполняется сравнение имен, никакие подстановки для составных переменных не производятся.

  2. Цикл считается активным, если он в настоящий момент обрабатывается. Если в процессе выполнения цикла была вызвана подпрограмма или началась обработка инструкции INTERPRET, то цикл становится неактивным до тех пор, пока не будет осуществлен возврат из подпрограммы или не завершится выполнение инструкции INTERPRET. Инструкцию ITERATE нельзя использовать в неактивных циклах.

  3. Если одна и та же управляющая переменная используется в нескольких активных циклах, то инструкция ITERATE относится к самому внутреннему циклу.



Содержание раздела