Gå till huvudinnehåll Gå till ytterligare innehåll

For..next

Kontrollsatsen for..next är en konstruktion för skriptiteration med en räknevariabel. Satserna inom slingan som innesluts av for och next exekveras för varje värde i räknevariabeln mellan angivna övre och undre gränser.

Syntax:  

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

 

Uttrycken expr1, expr2 och expr3 utvärderas bara första gången slingan påbörjas. Värdet på räknevariabeln kan ändras av satser inom slingan, men detta brukar inte göras inom programmering.

Om en exit for-sats påträffas i slingan flyttas skriptexekveringen till den första satsen efter next-satsen som markerar slutet på slingan. En exit for-sats kan göras villkorad genom det valbara användandet av ett when- eller unless-suffix.

Anteckning om informationEftersom for..next-satsen är en kontrollsats, och som sådan slutar med ett semikolon eller radslut, måste var och en av dess tre möjliga komponenter (for..to..step, exit for och next) rymmas på en egen rad i skriptet.

Argument:  

Argument
Argument Beskrivning
counter Ett variabelnamn. Om counter anges efter next, måste variabelnamnet överensstämma med det variabelnamn som angivits efter motsvarande for.
expr1 Ett uttryck som anger det första värdet i counter för vilket slingan ska exekveras.
expr2 Ett uttryck som anger det sista värdet i counter för vilket slingan ska exekveras.
expr3 Ett uttryck som anger hur många steg värdet i counter ska öka varje gång slingan exekverats.
condition Ett logiskt uttryck som utvärderas till True eller False.
statements Valfri grupp av en eller flera Qlik Sense-skriptsatser.

Exempel 1: Läsa in ett antal filer i följd

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

for a=1 to 9

LOAD * from file$(a).csv;

next

Exempel 2: Läsa in valfritt antal filer i

I detta exempel utgår vi från datafilerna x1.csv, x3.csv, x5.csv, x7.csv och x9.csv. Inläsningen stoppas vid valfri punkt med hjälp av villkoret 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

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!