# 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`

## Mer information

* [For each..next](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/For%20Each.htm)
* [Next](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/Next.htm)
* [To](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/To.htm)
* [Exit](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/Exit.htm)