For..next

for..next kontrol ifadesi, sayaçlı bir kod yineleme yapısıdır. for ve next öğelerinin içine aldığı döngünün içindeki deyimler, belirtilen düşük ve yüksek sınırlar arasındaki sayaç değişkeninin her bir değeri için yürütülür.

Syntax:  

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

 

expr1, expr2 ve expr3 ifadeleri yalnızca döngüye ilk girildiğinde değerlendirilir. Counter değişkeninin değeri döngü içinde deyimlerle değiştirilebilir, ancak bu iyi bir programlama uygulaması değildir.

Döngü içinde bir exit for cümlesiyle karşılaşılırsa, kodun yürütülmesi döngünün sonunu belirten next cümlesinden sonra gelen ilk deyime aktarılır. Bir exit for cümlesi, when veya unless sonekinin isteğe bağlı kullanımıyla koşullu hale getirilebilir.

Note: for..next deyimi bir kontrol ifadesi olduğundan ve bu nedenle noktalı virgülle veya satır sonuyla bittiğinden, üç olası cümlesinin her biri (for..to..step, exit for ve next) satır sınırını geçmemelidir.

Arguments:  

Bağımsız Değişken Açıklama
counter Bir değişken adı. counter öğesi next öğesinden sonra belirtilirse, karşılık gelen for öğesinden sonra bulunan öğeyle aynı değişken adı olmalıdır.
expr1 Döngünün yürütülmesi gereken counter değişkeninin ilk değerini belirleyen bir ifade.
expr2 Döngünün yürütülmesi gereken counter değişkeninin son değerini belirleyen bir ifade.
expr3 Döngü her yürütüldüğünde counter değişkeninin artımını gösteren değeri belirleyen bir ifade.
condition True veya False olarak değerlendirilen bir mantıksal ifade.
statements Bir veya daha fazla Qlik Sense kod deyiminden oluşan herhangi bir grup.

Example 1: Bir dosya dizisi yükleme

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

for a=1 to 9

LOAD * from file$(a).csv;

next

Example 2: Rastgele sayıda dosya yükleme

Bu örnekte, x1.csv, x3.csv, x5.csv, x7.csv ve x9.csv veri dosyaları olduğunu varsayıyoruz. if rand( )<0.5 then koşulu kullanılarak, yükleme rastgele bir noktada durdurulur.

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