For..next

De besturingsopdracht for..next is een herhalingsconstructie voor gebruik in scripts met een teller. De opdrachten in de lus tussen for en next worden uitgevoerd voor elke waarde van de tellervariabele tussen de opgegeven onder- en bovengrens.

Syntax:  

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

 

De uitdrukkingen expr1, expr2 en expr3 worden alleen de eerste keer dat de lus wordt ingevoerd geëvalueerd. De waarde van de tellervariabele kan worden gewijzigd door opdrachten binnen de lus. Dit is echter met het oog op de gebruikelijke manier van programmeren niet aan te raden.

Als een clausule exit for binnen de lus wordt aangetroffen, gaat de uitvoering van het script over op de eerste opdracht na de clausule next die het einde van de lus aangeeft. De clausule exit for kan voorwaardelijk worden gemaakt met het optionele suffix when of unless.

Opmerking: Omdat de instructie for..next een besturingsopdracht is en dus wordt afgesloten door een puntkomma of het einde van een regel, mag geen van de drie mogelijke clausules ervan (for..to..step, exit for en next) de regelgrens overschrijden.

Arguments:  

Argument Beschrijving
counter De naam van een variabele. Als counter wordt opgegeven na next moet de variabele dezelfde naam hebben als de variabele die wordt gevonden na de overeenkomende for.
expr1 Een uitdrukking die de eerste waarde van de variabele counter bepaalt waarvoor de lus wordt uitgevoerd.
expr2 Een uitdrukking die de laatste waarde van de variabele counter bepaalt waarvoor de lus wordt uitgevoerd.
expr3 Een uitdrukking die de waarde bepaalt van de stap waarmee de variabele counter toeneemt bij elke uitvoering van de lus.
condition Een logische uitdrukking die resulteert in True of False.
statements Een willekeurige groep van een of meer Qlik Sense-scriptopdrachten.

Example 1: Een reeks van bestanden laden

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

for a=1 to 9

LOAD * from file$(a).csv;

next

Example 2: Een willekeurig aantal bestanden laden

In dit voorbeeld gaan we ervan uit dat we de gegevensbestanden x1.csv, x3.csv, x5.csv, x7.csv en x9.csv hebben. Het laden wordt bij een willekeurig punt gestopt met de voorwaarde 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