For..next

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

Синтаксис:  

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

 

Выражения expr1, expr2 и expr3 рассчитываются только при первом входе в цикл. Значение переменной counter может быть изменено операторами внутри цикла, однако это делать не рекомендуется.

Если в цикле появляется предложение exit for, выполнение скрипта будет передано первому оператору после предложения next, указывающего на конец цикла. Предложение exit for можно сделать условным с помощью дополнительного использования суффикса when или unless.

Примечание: Поскольку оператор for..next является оператором управления и заканчивается точкой с запятой или знаком конца строки, каждое из трех его возможных предложений (for..to..step, exit for и next) не должно выходить за границу строки.

Аргументы:  

Аргумент Описание
counter Имя переменной. Если переменная counter задана после next, она должна иметь такое же имя переменной, как указано после соответствующего предложения for.
expr1 Выражение, определяющее первое значение переменной counter, для которой должен выполняться цикл.
expr2

Выражение, определяющее максимальное значение переменной counter, для которой должен выполняться цикл.

expr3 Выражение, которое определяет значение приращения переменной counter при каждом выполнении цикла.
condition логическое выражение, имеющее значение True или False.
statements Любая группа, состоящая из одного или нескольких операторов скрипта QlikView.

Пример 1: Загрузка последовательности файлов

// LOAD files file1.csv..file9.csv

for a=1 to 9

LOAD * from file$(a).csv;

next

Пример 2: Загрузка случайного числа файлов

В этом примере используются следующие файлы с данными: x1.csv, x3.csv, x5.csv, x7.csv и x9.csv. Загрузка остановлена в случайной точке с помощью условия if rand( )<0.5 then.

for counter=1 to 9 step 2

set filename=x$(counter).csv;

if rand( )<0.5 then

exit for unless counter=1

end if

LOAD a,b from $(filename);

next

См. также: