跳到主要內容

For..next

在此頁面

For..next

for..next 控制陳述式是包含計數器的指令碼反覆運算建構。將對於所指定上下限之間(以及包括該值)的各個 counter 變數值,執行 fornext 所括住迴圈之內的陳述式。

Syntax:  

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

 

只有在第一次進入迴圈時,才會評估 expr1expr2expr3 運算式。迴圈內的陳述式可變更 counter 變數的值,不過在程式設計上這不見得是好方法。

如果 exit for 子句出現在迴圈中,指令碼的執行將傳輸到 next 子句後的第一個陳述式,代表迴圈結束。選用 whenunless 後置詞,即可將 exit for 子句設定為條件子句。

備註: 由於 for..next 陳述式是控制陳述式,因而會以分號或行結尾來結束,所以這三個可能的子句 (for..to..stepexit for、與 next) 都不能超過行邊界。

Arguments:  

For 引數
引數 描述
counter 變數名稱。如果在 next 之後指定 counter,它的變數名稱必須與對應的 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