跳到主要内容

For..next

在该页面上

For..next

for..next 控制语句是一个带有计数器的脚本迭代构造。指定的高低限值之间(含限值)的计数器变量的每个值均会执行由 fornext 限定的循环中的语句。

Syntax:  

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

 

表达式 expr1expr2expr3 仅会在首次进入循环时进行求值。计数器变量的值可通过循环内的语句进行更改,但这并非出色的编程做法。

如果在循环内遇到 exit for 子句,则脚本执行会转移至表示循环结束的 next 子句之后的第一个语句。exit for 子句可通过选择性使用 whenunless 后缀变为有条件子句。

备注: 由于 for..next 语句是控制语句,并以分号或换行符结束,三个可能子句(for..to..stepexit fornext)中任意一个子句都不得跨越行边界。

Arguments:  

For 参数
参数 说明
counter 一个变量名。如果 counternext 之后指定,变量名必须与对应的 for 之后查找的变量名相同。
expr1 一个表达式,可决定与应执行循环有关的 counter 变量的第一个值。
expr2

一个表达式,可确定应执行循环的 counter 变量的最大值。

expr3 一个表达式,可决定每执行一次循环 counter 变量增加的值。
condition 用于评估 TrueFalse 的逻辑表达式。
statements 一个或多个 QlikView 脚本语句的任意组。

Example 1: 加载文件序列

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

for a=1 to 9

LOAD * from file$(a).csv;

next

Example 2: 加载随即文件数量

在本例中,我们假定有数据文件 x1.csv、x3.csv、x5.csv、x7.csvx9.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