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.
Söz Dizimi:
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.
Bağımsız Değişkenler:
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. |
Örnek 1: Bir dosya dizisi yükleme
// LOAD files file1.csv..file9.csv
for a=1 to 9
LOAD * from file$(a).csv;
next
Örnek 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